break out,continue out的小案例

案例涉及两点:

1、控制循环流程:label在break、continue中的使用;
2、in.hasNextInt()判断程序接收到的是否为整数。

说明

out只是一种标号(label),label用可以有用in、out、a、b代替都一样,可以看做是给代码命名。
break label表示结束label:后面的循环,continue label表示重头开始label:后面的循环。

in.hasNextInt()判断in.next() 接收到的数据

in.next() 接收到整数,in.hasNextInt()判断的循环结束

			//此处代码中的循环接收到整数才会结束
			//in.hasNextInt()结果为布尔类型:true/false,输入整数时结果为true
			//不使用in.next()的话,in.hasNextInt()只储存对第一次接收到的数据所做的判断结果
			//in.next()可以重复接收数据,接收字符串到in.hasNextInt()判断是否为整型
			Scanner in = new Scanner(System.in);
			while(!in.hasNextInt()){	//输入的不是整数时,!in.hasNextInt()结果为true,循环继续
				System.out.println("输入的不是整数!");
				in.next();//接收到整数后循环结束
			}
			

完整代码

import java.util.Scanner;

public class BreakContinue_LabelOut
{
	public static void main(String args[])
	{
		out:while(true){//无限循环,循环体内部设置结束语句
			int sum=0;
			int data;
			System.out.println("请输入一个大于等于3的整数:");
			Scanner in = new Scanner(System.in);

			while(!in.hasNextInt()){//循环直到输入整数
				System.out.println("输入有问题,您输入的不是整数!\n请输入一个大于等于3的整数:");
				in.next();
			}
			data = in.nextInt();
			if(data>=3)
			{//该整数>=3,开始进行运算
				for(int i=1;i<=data;i++){//关键运算代码
					sum+=i;
				}
				System.out.println("1+2+…+"+data+"="+sum);

				//判断是否继续运算,输入y或n得到判断结果后判断结束
				in:while(true){
					System.out.println("是否继续:是y,否n");
					String t=in.next();
					if(t.equals("y")){//输入y继续运算	
						continue out;//continue out跳出,继续out后面的循环
					}else if(t.equals("n")){//输入n,结束运算
						break out;//break out跳过out后面的循环,执行后面的代码

					}else{//输入的不是y或n。(大括号可去)
						System.out.println("请输入y或n!");
						continue in;//输入错误,继续当前in循环。
					}						
				}//in循环尾括号

			}//输入的整数>=3
			else
			{//输入的整数<3
				System.out.println("输入有问题,您输入的整数不符合要求!");
				continue out;//继续out循环,重新接收整数
			}//输入整数时的判断if

		}//第1层out循环结束
	System.out.println("谢谢!");
	}
}

初次发帖,欢迎指出代码的可完善之处!

你可能感兴趣的:(java初学)