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;
}