这个代码中,该怎样跳出死循环以及判断输入是否为负数?

图片说明
图片说明
图片说明

while循环放switch前面 while(m>0)
if(m<0)print(.....) 判断可以加在int //定义M 的后面

break就跳出了啊,获取输入的值,小于0就为负数

while循环语句放错位置了,要循环的只是选择的那部分,你把while语句放到switch语句之前就可以了,顺便再用if判断控制台输入的值M是否为负数。

多用 break; continue 接口; return;

你这case 9下的break只是跳出了switch,并没有跳出while(true)循环。。
解决办法就是把switch判断的M定义在while循环的外部,while循环的条件由true改成M != 9

判断负数就直接在输入后判断即可,如果是负数那么就跳过这次的循环。


int o = -1;
Scanner scanner = new Scanner(System.in);
while (o != 9) {
    System.out.println("请选择图形\n1 圆  2 矩形    3 三角形   9 退出");
    o = scanner.nextInt();
    if (o < 0) {
        System.out.println("输入的是负数");
        continue;
    }
    switch (o) {
        case 1:
            System.out.println("圆");
            break;
        case 2:
            System.out.println("矩形");
            break;
        case 3:
            System.out.println("三角形");
            break;
        case 9:
            System.out.println("退出");
            break;
    }