当前位置: 代码迷 >> 综合 >> Day04——Java基础——循环流程控制语句(while do while for)、流程跳转语句(break 、continue、return)
  详细解决方案

Day04——Java基础——循环流程控制语句(while do while for)、流程跳转语句(break 、continue、return)

热度:19   发布时间:2023-12-15 15:48:57.0

Java流程控制语句

循环流程控制语句
重复性的执行一段相同的代码

循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:
这是一个boolean 表达式,这个表达式循环体。能决定是否执行
循环体语句:
这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:
这个部分在一次循环体语句结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。

按照语法划分分为三种
1、While
while循环语句格式:

基本格式
while(判断条件语句) {
循环体语句;
}

//while循环//语法:while(布尔表达式){循环体语句}//if(布尔表达式){语句块}//当使用while进行循环操作时一般使用拓展语法//1、初始化语句int i=1;//2、循环执行条件判断语句//只有返回true才会执行循环体语句while(i<=5){
    //3、循环体语句System.out.println("hello World!");//4、迭代语句//用于在每次循环结束后修改循环条件中的变量i=i+1;//i++}

2、do…while
do…while循环语句格式:

基本格式
do {
循环体语句;
}while(判断条件语句);
3、For
for循环语句格式:

for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
For循环语法集初始化语句、条件判断语句、迭代语句、循环语句与语法本身
在这里插入图片描述在这里插入图片描述
循环中初始化语句只会执行一次

while、do…while、for循环的区别
While与do…while区别
:while先进行判断操作后进行循环体语句的执行,do…while先进行循环体语句的执行后再进行条件的判断(while循环的循环体语句可能一次都不会执行,但是do…while循环体语句至少被执行一次)

**While与for的区别:**for语法将初始化语句集成,使其作用范围在当前循环中,在循环结束后释放资源,且将迭代语句一同放入语法中使{}中只保留循环体语句减少代码的混淆

While与do…while使用场景:
当需要进行条件判断后才会执行的语句时使用while,当进行无论条件是否成功都会首先执行一次的操作时使用do…while

While与for使用场景:
for循环适合针对一个范围判断进行操作,对于已知次数的循环(输出10次固定语句)
while循环适合判断次数不明确操作,未知次数的循环(检票)

// 使用for循环计算当前已过天数Scanner sc = new Scanner(System.in);System.out.println("请输入年");int year = sc.nextInt();System.out.println("请输入月");int month = sc.nextInt();System.out.println("请输入日");int day = sc.nextInt();int sumDay=0;//已过天数int TwoMonthDay=28;//二月天数if((year%4==0&&year%100!=0)||year%400==0){
    TwoMonthDay=29;}for(int i=1;i<month;i++){
    int monthDay=0;if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
    monthDay=31;}else if(i==2){
    monthDay=TwoMonthDay;}else{
    monthDay=30;}sumDay+=monthDay;}sumDay+=day;System.out.println(sumDay);

输出1000以内的水仙花数

//输出1000以内的水仙花数//水仙花数 各位3次方之和为本身的数//1、获取当前三位数各位数字123//(1)获取百位 对100取整//(2)获取十位 先对100取余在对10取整(先对10取整再对10取余)//(3)获取个位 先对100取余在对10取余(对10取余)for(int i=100;i<1000;i++){
    int hundredsPlace=i/100;//百位int tenPlace=i/10%10;//十位int onePlace=i%10;//个位if(hundredsPlace*hundredsPlace*hundredsPlace+tenPlace*tenPlace*tenPlace+onePlace*onePlace*onePlace==i){
    System.out.println(i);}	}

Java流程跳转语句
在java流程控制语句执行的过程中动态的对流程进行控制跳转的关键字
break:结束当前循环

// break// 结束当前循环// 在循环输出100~999的过程中要求如果出现水仙花数// 则用水仙花数?替换并结束循环for (int i = 100; i < 1000; i++) {
    int hundredsPlace = i / 100;// 百位int tenPlace = i / 10 % 10;// 十位int onePlace = i % 10;// 个位if (hundredsPlace * hundredsPlace * hundredsPlace + tenPlace * tenPlace * tenPlace+ onePlace * onePlace * onePlace == i) {
    System.out.println("?");break;} else {
    System.out.println(i);}}

continue:跳过本次循环进入下次循环

//continue跳过本次循环进入下次循环//输出1~100内的1~50int cCount=0;//保存continue执行次数for(int i=1;i<=100;i++){
    if(i==50){
    cCount++;continue;}System.out.print(i);}System.out.println();System.out.println(cCount);int bCount=0;//保存break执行次数for(int i=1;i<=100;i++){
    if(i==50){
    bCount++;break;}System.out.print(i);}System.out.println();System.out.println(bCount);

return:结束方法返回数据

// return结束方法并返回//return为方法级别的结束//break return区别//break结束当前代码块 后续代码会继续运行//return结束当前方法 后续代码不会运行for (int i = 1; i <= 100; i++) {
    System.out.print(i);if (i == 50) {
    return;}}System.out.println();System.out.println("~~~~~~~~~~~~~~~~~");for (int i = 1; i <= 100; i++) {
    System.out.print(i);if (i == 50) {
    break;}}

1、猜拳游戏五局三胜
2、使用for循环计算当年剩余天数
3、打印三角形

  相关解决方案