学习任务:

视频学习break和continue

动手测试案例

除了按照循环结构的关系表达式及控制语句来控制程序的执行以外,Java还提供了break,continue来控制循环的中断和继续:

1)break 中断当前循环体

2)continue 提前结束本次循环

例子:

需求:连续输入一个大于1的3位数,判断它是否是合数,输入小于1的数则为非法提示重新输入(程序不结束),输入1则程序退出。

什么是合数?

引用百度百科:合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。与之相对的是质数,而1既不属于质数也不属于合数。

分析:

合数和素数(质数)是相对的,根据前边判断素数的经验编写程序如下:

import java.util.Scanner;

/**
 * 面向过程编程-判断合数break,continue
 * @author 攀博课堂(www.pbteach.com)
 *
 */
public class NestedloopsDemo4 {

	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		int x = 0;
		while (true) {
			System.out.println("请输入一个大于1的数:");
			x = scanner.nextInt();
			if(x<1) {
				//提前结束本次循环,下边的语句不再执行,重新进入下一轮循环,
				continue;
			}
			if (x==1) {
				//break在外层,这里退出外层while循环,程序结束
				System.out.println("程序退出!");
				break;
			}
			// 设一个布尔变量,为true表示是合数,为false表示不是合数
			boolean isComposite = false;

			int i=2;
            while(i<=x/2) {
            	if (x % i == 0) {//可以被整除说明是合数
            		isComposite = true;
            		break;
            	}
           		 i++;
            }
			if (isComposite) {
				System.out.println(x + "是合数");
			}else {
				System.out.println(x + "不是合数");
			}
		}

	}

}

注意:

上边程序中用到了无限循环的写法

while(true){

}

一般在服务类的程序中多采用此种方式,因为服务类程序通常不结束程序,永远对外提供服务,上边的程序可以当成一个服务类程序,它所提供的服务就是输入一个数判断是否是合数。

除了服务类程序,通常在无限循环体中要考虑判断逻辑,符合条件将退出程序:

if(关系表达式){
	break;
}
提问-攀博课堂
我要提问 不会就问,有效沟通
关注公众号,加入微信群交流提问。 攀博课堂官方公众号
问答列表,查看本知识点所有问题