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不能推出循环了,求解!!!

兄弟你这谁能看的清啊

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

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

Iterator<Object> iterator = fields.iterator();
while (iterator.hasNext()){
            Object obj = iterator.next();
            }

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

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