第1关:学习-Java循环之break之判断素数
任务描述
本关任务:判断给定的任意一个大于 1 的正整数是否是素数。 素数的定义:在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。
相关知识
在之前学习的 Java 循环语句中,只有当循环的判断条件不成立时,才能退出整个循环,如果我们想在循环的判断条件依然成立,但在满足某种条件时,退出整个循环,执行循环体以外的语句,这时候就需要使用到 break 语句。
break 语句
break 语句用于强行退出整个循环,而不管循环的条件判断是否成立,并且不执行循环体内后续的语句。
break 语句使用案例:打印 1 到 10,遇到 4 的倍数时程序自动退出。
public class BreakTest {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
//判断i是否为4的倍数,如果是,则退出循环。
if (i % 4 == 0) {
break;
}
System.out.print(i+" ");
}
}
}
输出结果如下:
1 2 3
从结果中我们可以看到,当 i=4 的时候,循环立即退出,所以 4 以及后续数字都不会被打印出来。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧 “测试结果”区查看具体的测试集详情。
开始你的任务吧,祝你成功!
源代码:
/*
任务:判断给定的任意一个大于 1 的正整数是否是素数。
素数的定义:在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。
思路:接收给定的正整数n,从2到n对该数取余,如果存在余数为零,那么该数不为素数,否则就是素数
如果不是:请输出“x不是一个素数”。
如果是:请输出“x是一个素数”。
*/
import java.util.Scanner;
public class BreakTest {
public static void main(String[] args) {
// 请在Begin-End间编写代码
/********** Begin **********/
// 输入一个整数判断是否是素数
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();// 接收输入的值,赋值给a
boolean flag = true;// 为下面的判断定义一个标记
// 判断输的数是否是素数
// 使用for循环进行循环判断
for (int i = 2; i < a; i++) {// i=2和i<a是因为我们要判断除了1和其本身,其他可以整除a的数
// 使用if判断是否能被2到小于其本身的数,所整除
if (a % i == 0) {// 如果a除以i取余的结果是零,那么这个数就不是素数
flag = false;// 因为判断出不是素数,所以把值给为false
break;// 因为已经判断出了这个数不是素数,所以继续判断下去已经无意义,使用break退出循环
}
}
// 使用if判断所做的标记flag,入过为true就执行下面的内容
if (flag && a != 1) {// 在前面我么没有判断1,所以在此加上&&
System.out.println(a + "是一个素数");
} else {
System.out.println(a + "不是一个素数");
}
}
}