标签语句段,为啥加上花括号,就出错呢?注释掉就可以运行。还是我又思维混乱了?
//实例来源://实例功能:带标签的continue和break的用法
//运行描述:
import java.util.Scanner;
import java.util.Random;
class TestJava{
public static void main(String[] args){
Scanner stdIn=new Scanner(System.in);
Random rand=new Random();
int retryCount=rand.nextInt(11);
System.out.println("猜数游戏,每轮可以猜五次,最多可以猜" + retryCount + "轮。");
int randNum=rand.nextInt(101);
System.out.println("作弊器:生成的随机数是:" + randNum);
int total=0; //所有组的合计值
int i; //因为循环结束后还要用到i,所以要在循环语句之前声明
Outer://{ //为啥加上花括号,就出错呢?注释掉就可以运行。还是我又思维混乱了?
for (i=1;i<=retryCount;i++){
System.out.println("■第" + i + "轮猜数:");
int sum=0; //每组的小计值
Inner://{
for (int j=0;j<5;j++){
System.out.print("整数:");
int t=stdIn.nextInt();
if (total+sum+t==randNum){
total=randNum;
break Outer; //直接退出两层循环
}else if(total+sum+t>randNum){
break Inner; //退出当前层循环
}else if(t<=0){
System.out.println("你太能闹了,不许输入小于等于0的数,本轮作废!");
continue Outer;
}
sum+=t;
}
//}//与Inner标签对应的
System.out.println("本轮有效值为:" + sum + "。\n");
total+=sum;
}
//}//与Outer标签对应的
if (total==randNum){
System.out.println("使用了" + i + "轮,终于猜出了正确的数字:" + randNum);
}else{
System.out.println("使用了" + retryCount + "轮,还是没有猜出正确的数字:" + randNum);
}
}
}
注释掉花括号前后的运行效果: