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不能推出循环了,求解!!!
weixin_42945222
徐智杰xuxule 使用标签
8 个月之前 回复

5个回答

兄弟你这谁能看的清啊

weixin_43686805
好大一只阿文 嘿嘿 没事了 谢谢兄弟 这个代码复制上来就变成这个样子了
大约一年之前 回复

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

weixin_43686805
好大一只阿文 嘿嘿 没事了 谢谢兄弟 这个代码复制上来就变成这个样子了 我加了break here就可以退出了
大约一年之前 回复

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

weixin_43686805
好大一只阿文 我加了break here就可以退出了
大约一年之前 回复

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

Iterator<Object> iterator = fields.iterator();
while (iterator.hasNext()){
            Object obj = iterator.next();
            }
weixin_43686805
好大一只阿文 嘿嘿 没事了 谢谢兄弟 !
大约一年之前 回复

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐