weixin_43686805
好大一只阿文
采纳率0%
2019-05-09 22:38

java switch语句break不能退出循环

外层加了一个循环为了能循环选择,但是加了之后case9 和default的break不能推出循环了,求解!!!

do {
    int i=0;

    double area,s,a,b,c=0;

    System.out.println("输入要使用的图形 :1.圆形  2.矩形  3.三角形  9.退出");

    Scanner sc =new Scanner(System.in);

    int x =sc.nextInt();

    switch(x)

    {

    case 1: System.out.println("圆形");

        System.out.println("请输入圆形的半径");

        Scanner sr = new Scanner(System.in);

        Circle.r=sr.nextFloat();

        Circle Circle=new Circle();

        System.out.println("周长是 "+Circle.CircleSize());

        System.out.println("面积是 "+Circle.CircleLenth());

        break;

    case 2:System.out.println("矩形");

        System.out.println("请输入长和宽");

        Scanner st = new Scanner(System.in);

        Juxing.a=st.nextFloat();

        Juxing.b=st.nextFloat();

        Juxing Juxing=new Juxing();

        System.out.println("周长是 "+Juxing.JuxingLenth());

        System.out.println("面积是 "+Juxing.JuxingSize());

        break;

    case 3:System.out.println("三角形");

        System.out.println("请输入边长");

        Scanner sc1 =new Scanner(System.in);

        System.out.println("输入三角形的三边");

        a = sc1.nextInt();

        b = sc1.nextInt();

        c = sc1.nextInt();

        s =(a+b+c)/2f;

       double S = (double) Math.sqrt(s*(s-a)*(s-b)*(s-c));// 海伦公式

        if (a+b>c && b+c>a && a+c>b)

        {

            System.out.println(S);

        }

        else

        {

            System.out.println("不成立三角形");

        }

        break;

    case 9 :System.out.println("程序退出");

        break;

    default:System.out.println("输入错误");

        break;

    }

    }while(true);



外层加了一个循环为了能循环选择,但是加了之后case9 和default的break不能推出循环了,求解!!!
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • weixin_43849755 神仙白茶 2年前

    do{...} while(true)为死循环 ,没有跳出循环的条件 ,肯定会一直循环

    点赞 评论 复制链接分享
  • qq_27202659 泽物无声 2年前

    while(true) 死循环, switch case 只是在里面起了作用,你还得想办法让 while 条件什么时候截止啊,
    例如迭代器

    Iterator<Object> iterator = fields.iterator();
    while (iterator.hasNext()){
                Object obj = iterator.next();
                }
    
    点赞 评论 复制链接分享
  • weixin_45044059 weixin_45044059 2年前

    死循环了吧,代码能不能发的清楚点

    点赞 评论 复制链接分享
  • qq_18630487 真-酸辣土豆丝 2年前

    你这
    do{...} while(true);
    while条件永远为true循环能结束不是见了鬼

    点赞 评论 复制链接分享
  • qq_36817076 热心市民杜垃圾 2年前

    兄弟你这谁能看的清啊

    点赞 评论 复制链接分享

相关推荐