break与continue
break与continue
为什么需要break语句?
回顾以前在switch见过break
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
int i = 2;
switch(i){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;// --------------------+
}// | 跳转出去执行其它语句
// |
//其它语句<--------------------------------+
遇到break,立即跳出switch语句
break的功能是用于跳出程序,执行其它代码。
for(int i = 0; i < 10; i ++) {
if(i==5) {
break;
}
System.out.print(i + " ");
}
System.out.println("已经跳出for循环");
举一个简单的生活例子就知道了:
if(杨过练玉女心经累了) {
休息// break
}
和小龙女干别的事情:聊天,上网,打游戏。
|- break语句的使用:
|-问题:循环录入5门功课的成绩,如果分数小于0,则停止录入,并提示录入错误。分析:在录入的过程中进行分数的判断,如果为负数,立刻跳出循环,我们使用break来处理。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double score;
boolean flag = true;
int sum = 0;
double avg;
for(int i = 1;i<=5;i++) {
System.out.println("请输入" + i + "的成绩:");
score = input.nextInt();
if(score < 0) {
flag = false;
break;
}
sum = sum + (int)score;
}
if(flag) {
avg = sum / 5;
System.out.println("平均分是:" + avg);
}else {
System.out.println("对不起,分数录入错误,请重新输入成绩。");
}
}
}
|- break语句用于终止某个循环,使程序调到循环块外的下一条语句。在循环中位于break后的语句将不再执行。
|- continue语句的使用
continue :只能用在循环里
continue 作用:跳过循环体中剩余的语句而执行下一次循环
|- 问题:循环录入学生java课的成绩,统计80分以上的学员的比例。
|- 示例1
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);// 实例化
double score;// 保存分数
int num = 0;// 保存人数
for(int i = 1;i<=5;i++) {
System.out.println("请输入" + i + "的成绩:");
score = input.nextInt();
if(score < 80) { // 当分数小于80分时,就被抛弃。num++ 就不会被执行。
continue;
}
num++;// 对80分以上的人数进行累加
}
System.out.println("80分以上的人数是:" + num);
double rate = (double)num / 5 * 100;// 如果不转成double,那么就会是0*100
System.out.println("80分以上的人所占的比例是:"+ rate+"%");
}
}
|- 实例2
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
double score;
int num = 0;
int sum = 0;
double avg;
boolean flag = true;
for(int i = 1;i<=5;i++) {
System.out.print("请输入" + i + "的成绩:");
score = input.nextInt();
if(score < 0) {
while(score < 0) {
flag = false;
//break;
System.out.print("请输入" + i + "的成绩:");
score = input.nextInt();
}
}
sum += score;
if(score < 80) { //当分数小于80分时,就被抛弃。num++ 就不会被执行。
continue;
}
num++;
}
System.out.println("80分以上的人数是:" + num);
double rate = (double)num / 5 * 100;// 如果不转成double,那么就会是0*100
System.out.println("80分以上的人所占的比例是:"+ rate+"%");
if(flag) {
avg = sum / 5;
System.out.println("平均分是:" + avg);
}else {
System.out.println("对不起,分数录入错误,请重新输入成绩。");
}
}
}
|- 问题:1到100之间个位数字不是2、3、4、7,并且不能被3整除的整数之和
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class Test {
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i <=100;i++) {
if(i%10 ==2||i%10 ==3||i%10 ==4||i%10 ==7&&i%3==0) {
continue;
}
sum = sum + i;
}
System.out.println(sum);
}
}
|- 问题:1到100之间所有的素数是?
|- 什么叫做素数?
|- 一个数除了1和它本身没有别的约数,这个数叫做素数(也叫质数)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public class Test {
public static void main(String args[]) {
int num,i;
for(num = 2;num <= 100;num++) {
for(i = 2;i <= num / 2;i++) {
if(num % i == 0) {
break;
}
}
if(i > num / 2) {
System.out.print(num +" ");
}
}
System.out.println("是素数" );
}
}
// output 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 是素数