流程控制语句
循环使代码变得简洁。
while循环
在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后 来每一次
额外的循环,都会在开始前重新计算一次。
语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。
循环结构都由如下四个结构组成:
初始化、条件判断、循环体、迭代
简单的100内奇数,偶数求和
//while循环100以内偶数的和
int i=1;
int sum=0;
while(i<=100){
if(i%2==0){
sum=sum+i;
//i+=sum
}
i++;
}
System.out.println(sum);
//for 100以内偶数的和
int sum=0;
for(int i=1;i<=100;i++){
if(i%2==0){
sum=sum+i;
}
}
System.out.println(sum);
结果是
简单的奇数求和
//while 100内奇数的和
int i=1;
int sum=0;
while(i<=100){
if(i%2==1){
sum=sum+i;
}
i++;
}
System.out.println(sum);
//for 100以内奇数的和
int sum=0;
for(int i=1;i<=100;i++){
if(i%2==1){
sum=sum+i;
}
i++;
}
System.out.println(sum);
结果是
while循环和do-while循环的不同
▪ do-while: 先执行,后判断。
▪ while: 先判断,后执行。
for循环
for循环语句是支持迭代的一种通用结构,是最有效、最灵 活的循环结构
语法形式
for (初始表达式;布尔表达式;步进) {
循环体;
}
注意事项
for循环在执行条件测试后,先执行程序部分,再执行步进。
在for语句的初始化部分声明的变量,其作用域为整个for循环体 “初始化”和“循环条件
表达式”部分可以使用逗号来执行多个操作 ,如果三个部分都为空语句(分号;能省),
相当于一个无限循环。
跳转语句break和continue
在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循
环, 并执行循环中剩余的语句。(break语句还可用于多支语句switch中)
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行
的语句,接着进行下一次是否执行循环的判定。
break语句跳出循环
System.out.println("请输入1到4的数字来进行拨号");
Scanner zg = new Scanner(System.in);
int num = zg.nextInt();
switch (num) {
case 1:
System.out.println("拨打爷爷的电话");
case 2:
System.out.println("拨打奶奶的电话");
case 3:
System.out.println("拨打爸爸的电话");
case 4:
System.out.println("拨打妈妈的电话");
default:
System.out.println("请输入正确的1到4的数字");
}
如果不使用break终止循环的话,当条件满足之后,下面的进程还会继续执行
System.out.println("请输入1到4的数字来进行拨号");
Scanner zg = new Scanner(System.in);
int num = zg.nextInt();
switch (num) {
case 1:
System.out.println("拨打爷爷的电话");
break;
case 2:
System.out.println("拨打奶奶的电话");
break;
case 3:
System.out.println("拨打爸爸的电话");
break;
case 4:
System.out.println("拨打妈妈的电话");
break;
default:
System.out.println("请输入正确的1到4的数字");
}
使用break语句跳出循环,终止循环。
随机数等于88时结束循环
//随机数等于88结束循环 while型
int i=0;
System.out.println("开始");
while(true){
int j=(int)Math.round(100*Math.random());
System.out.println(j);
if(j==88){
break;
}
i++;
}
System.out.println("循环了几次 : "+i);
//随机数等于88结束循环 for型
int i=0;
System.out.println("开始");
for(;;){
int j=(int)Math.round(100*Math.random());
System.out.println(j);
if(j==88){
break;
}
i++;
}
System.out.println("循环了几次 : "+i);
成绩录入循环
continue 跳出当前循环,当你输入的信息错误后跳出循环,再重新进行一次循环。
//成绩循环for
int i=1;
int sum=0;
for(;;){
System.out.print("请输入"+i+"门的成绩");
int cj=zg.nextInt();
if(cj>0){
sum=sum+cj;
}
else{
System.out.println("请输入正确的五门成绩");
System.out.println("\n");
i=1;
continue;
}
i++;
if(i==5){
break;
}
}
System.out.println("总成绩是"+sum);
int pjcj=sum/5;
System.out.println("平均成绩是"+pjcj);
//成绩循环while
int i=1;
int sum=0;
while(true){
System.out.print("请输入"+i+"门的成绩");
int cj=zg.nextInt();
if(cj>0){
sum=sum+cj;
}
else{
System.out.println("请输入正确的五门成绩");
System.out.println("\n");
i=1;
continue;
}
i++;
if(i==5){
break;
}
}
System.out.println("总成绩是"+sum);
int pjcj=sum/5;
System.out.println("平均成绩是"+pjcj);
循环录入成绩大于八十的概率是多少?
//输入人数成绩算成绩大于80的概率
int people=0;
System.out.print("请输入学生总人数");
int rs=zg.nextInt();
for(int i=0;i<rs;i++){
System.out.print("请输入学生成绩"+(i+1));
int chengj=zg.nextInt();
if(chengj<80){
continue;
}
people++;
}
System.out.println("大于80的人有"+people+"个");
double gl=(double)people/rs*100.0;
System.out.println("大于80分的人概率是"+gl+"%");