一.循环结构
Java中循环控制语句:while循环、do-while循环、for循环。循环结构的特点,在给定的条件成立时,反复执行某一段程序,直到条件不成立为止
循环语句的主要的作用:
反复执行某一段程序,直到不满足一定的条件为止:把循环分为3部分:
1.初始化部分:设置循环的初始状态
2.循环体:重复执行的代码
3.循环的条件:判断循环的条件,例如使用"i<100"判断循环的次数是否达到100次
1.while循环
while循环的语法格式:
变量的初始化
while(循环条件){
循环体
}
while也是java中的关键字,小括号的内容是循环条件
循环条件是一个布尔表达式,它的值是true或false
大括号中的语句统称为循环操作,或者叫循环体
注意:
while语句是先执行判断循环条件,再执行循环体
如果第一次判断循环条件为false(假),循环将一次不执行
while语句的执行步骤:
1.首先对循环条件的结果进行判断,如果为真,则执行循环语句
2.执行完毕后,继续对循环条件进行判断,如果为真,继续执行
3.如果结果是假(false),跳出循环语句,去执行后面的语句
例1:
需求:
实现:
1+2+3+…+100的求和计算
实现步骤:
1.首先定义一个变量sum,代表总和,初始值为0;
2.定义循环变量i;依次取1~100之间的每个数,初始值为1
3.当i<=100时,重复进行加法操作,将sum+i的值再赋给sum,每次相加后,将i的值递增
4.当i的值变成101时,循环条件为false,则退出循环,并输出最终的结果
package Test4;
/**
* @author:Xem626
* @date 2022/7/3 11:06
* @TODO
*/
public class Test1 {
public static void main(String[] args) {
int a=0;
int sum=0;
while(a<=100){
sum+=a;
a++;
}
System.out.println("和为:"+sum);
}
}
2.do-while循环
do-while循环语句的语法格式如下:
变量初始化
do{
循环体
}while(循环条件)
1.do-while以关键字do开头
2.大括号括起来的就是循环体
3.最后while关键字和紧随其后小括号括起来的就是循环条件
do-while语句执行的步骤:
1.首先执行循环体
2.执行完毕后,对循环条件的结果进行判断
3.如果结果为真,则继续执行循环体,否则,终止循环,执行后面的语句
注意:
do-while先执行循环体,再执行循环条件,所以循环体至少执行依次,这点和while循环相反
例2:
需求:
实现:
1+2+3+…+100的求和计算
实现步骤:
1.和while语句基本相同,先定义变量sum和变量i并赋值
2.然后执行循环
3.差别是先执行循环体,再判断循环条件,与while语句相反
package Test4;
/**
* @author:Xem626
* @date 2022/7/3 11:16
* @TODO
*/
public class Test2 {
public static void main(String[] args) {
int a=1;
int sum=0;
do{
sum+=a;
a++;
}while(a<=100);
System.out.println("和为"+sum);
}
}
3.for循环
for循环的语法格式如下:
for(表达式1;表达式2;表达式3){
循环体
}
或者更直观的表示为:
for(变量的初始化;循环条件;修改循环变量的值){
循环体
}
1.for循环以关键字for开头
2.大括号括起来的是循环体
3.表达式1;表达式2;表达式3,分别用来实现变量的初始化,判断循环条件和修改循环变量的值
for语句的执行步骤:
1.首次执行表达式1,一般进行变量初始化的操作
2.然后执行表达式2,即对循环条件进行判断
3.如果结果为真,则执行循环体
4.循环语句执行完毕后执行表达式3,改变循环的变量的值,再次执行表达式2;
如果结果是真,继续循环
5.如果结果是假,终止循环,执行后面的语句
注意:
1.无论循环多少次,表达式1只执行1次
2.for语句和while语句功能相似,都是先判断条件再执行,只是采用了不同的语法格式
例3:
需求:
输入一个学生的姓名和他五门课的成绩,求出平均值,输出结果
实现步骤:
1.获得键盘输入一名学生的名字
2.获得键盘输入这名学生的5门课的成绩,因为5门课,也就是固定了循环次数5次,首选for循环
循环操作接收该学生的每门课的成绩,并累加,以获得5门课的总成绩
3.求出平均分在控制台上输出结果
package Test4;
import java.util.Scanner;
/**
* @author:Xem626
* @date 2022/7/3 11:21
* @TODO
*/
public class Test {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int sum=0;
System.out.println("请输入学生姓名:");
String name=scanner.next();
for(int a=1;a<6;a++){
System.out.println("请输入第"+a+"门课成绩");
int b=scanner.nextInt();
System.out.println("该学生第"+a+"门课成绩为:"+b);
sum+=b;
}
System.out.println("5门课总成绩为:"+sum);
System.out.println("平均分为:"+sum/5);
}
}
4.多重循环
多重循环指一个循环体中再包含一个循环语句,又称之为嵌套循环。循环语句内可以嵌套多层循环,同时不同的循环语句可以相互嵌套
多重循环的语法格式:
多重循环的语法格式:
while(循环条件1){
循环语句1
for(循环条件2){
循环语句2
}
}
1.这是while循环语句和for循环语句嵌套的例子,其中while循环称之为外层循环,for循环称之为内层循环,因为是两层循环,称为二重循环
2.该二重循环执行的过程:外层while循环每循环依次,内层for循环就从头到尾完整的执行一遍
例4:
需求:
计算若干个学生每人5门课程的平均分
1.循环接收一个学生的5门课成绩,求出平均分
2.使用多重循环
分析:
在上述需求中,外循环一次处理一个学生的姓名和录入平均分计算,内循环处理每个学生的5门课成绩,也就是说,外循环每执行一次,内循环执行5次
package Test;
import java.util.Scanner;
/**
* @作者:Xem626
* @date: 2022/7/3 20:40
* @TODO
*/
public class Test3 {
public static void main(String[] args) {
String end=null;
do{
int score=0;
int sum=0;
double avg=0.0;
Scanner scanner=new Scanner(System.in);
System.out.println("请输入学生姓名:");
String name=scanner.next();
for(int i=0;i<5;i++){
System.out.println("请输入5门课中第"+(i+1)+"门课成绩");
score =scanner.nextInt();
sum +=score;
}
avg=sum/5;
System.out.println(name+"的平均分是"+avg);
System.out.println("\n继续输入Y/N?");
end=scanner.next();
}while(end.equals("Y")||end.equals("y"));
System.out.println("成绩录入结束");
}
}
5.循环的对比
1.语法格式的不同
2.执行的顺序不同:
(1).while循环:先判断循环条件,再执行那个循环体,如果条件不成立,退出循环
(2).do-while循环:先执行循环体,再判断循环条件,循环体至少执行一次
(3).for循环:先执行变量初始化部分,再判断循环条件,然后执行循环体,最后进行循环变量的计算
如果条件不成立,跳出循环
3.适用的场景不同:
在解决问题的时候,对于循环次数确定的情况下,我们使用for循环,对于循环次数不确定的情况下,通常选用while和do-while循环
二.跳转语句
Java语言中支持3种类型的跳转语句:continue语句、return语句,break;使用这些语句,可以把控制转移到循环甚至程序的其他地方。
1.break语句
作用:在循环种终止当前循环,在switch语句中终止switch语句
例1:
需求:
请实现输出数字1-10,若遇到4的倍数程序自动退出
package Test;
/**
* @作者:Xem626
* @date: 2022/7/3 21:23
* @TODO
*/
public class Test4 {
public static void main(String[] args) {
for(int i=1;i<=10;i++){
if(i%4==0){
break;
}
System.out.println(i);
}
System.out.println("循环结束");
}
}
分析:
1.当前的for循环如果i%4=0,则执行break命令
2.break语句的作用就是终止当前循环的语句的执行,然后执行当前循环后面的语句
例2:
需求:
用户输入字符串并进行显示,直到输入“bye”为止,请使用break语句实现
package Test;
import java.util.Scanner;
/**
* @作者:Xem626
* @date: 2022/7/3 21:30
* @TODO
*/
public class Test5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(true) {
System.out.println("请输入字符串:");
String input = scanner.next();
System.out.println("你输入的字符串为:"+input);
if("loveu".equals(input)){
System.out.println("输入结束");
break;
}
}
}
}
注意:
Java中判断两个字符串是否相等,用equals()判断两个字符串的值是否相等,用“==”比较判断内存地址是否相等
2.continue语句
作用:
强制循环提前返回,也就是让循环跳过本次循环中剩余代码,然后进入下次循环
例2:
需求:
实现输出1-10中非4的倍数的输出
分析:
执行程序,将输出“1,2,3,4,5,6,7,8,9,循环结束”。结果中应该没有4和8
2.当i=4,i=8,满足条件,执行continue语句并没有终止整个循环,而是终止本次循环,不再执行
continue语句后的输出语句
package Test;
/**
* @作者:Xem626
* @date: 2022/7/3 21:41
* @TODO
*/
public class Test6 {
public static void main(String[] args) {
for(int i=1;i<10;i++){
if(i%4==0){
continue;
}
System.out.println(i);
}
}
}
注意:
在while循环和do-while循环中,continue执行完毕后,程序将直接判断循环条件,如果为true,则继续下次循环,否则,终止循环,而在for循环中continue使用程序先跳转到循环变量计算部分,然后再判断循环条件
3.return语句
return语句的作用:
是结束当前方法的执行,并退回返回到该方法的语句处
例3:
需求:
请实现输出1-10中4以的数字
分析:
1.执行该程序,将输出"1,2,3"结果中没有for循环下面输出“循环结束”的打印。
2.当i=4时,满足条件,执行return语句,结束当前的循环,也结束了整个方法的执行
package Test;
/**
* @作者:Xem626
* @date: 2022/7/3 21:50
* @TODO
*/
public class Test {
public static void main(String[] args) {
for (int i=1;i<=10;i++){
if(i%4==0){
return;
}
System.out.println(i);
}
}
}
本章总结:
1.程序控制结构包括顺序结构、选择结构和循环结构,由这3种基本结构组成的程序可以解决任何复杂的问题
2.顺序结构是指程序从上向下依次执行每条语句的结构,中间没有任何判断和跳转
3.选择结构是根据条件判断的结构来选择执行不同的代码。在Java种提供了if控制语句、switch语句来实现选择结构
4.循环结构是指根据循环条件来重复性的执行某段代码。在Java中提供while语句、do-while语句、for语句等来实现循环结构
5.跳转语句中,break语句和continue语句用来实现循环结构的跳转,而return语句用来跳转方法。