欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java day04 循环结构(for、while、do/while)与流程控制关键字(break、continue、return)

程序员文章站 2024-03-21 23:44:52
...



1、什么是循环

概念:
通过某个条件,重复的执行一段逻辑代码。

java day04 循环结构(for、while、do/while)与流程控制关键字(break、continue、return)

2、for循环

2.1、for循环语法

语法:
for(初始条件语句; 循环条件语句; 条件控制语句){
//循环体
}

  1. 初始化条件:控制循环的开始
  2. 条件判断语句:控制循环的结束
  3. 条件控制语句:控制循环的过程(如何从开始到结束)

执行流程:

  • 首次执行初始部分(仅一次)。
  • 对布尔表达式进行判断,结果为true,则执行逻辑代码。
  • 本次执行完毕后,执行迭代部分,再次判断,结果仍旧为true,则再次执行逻辑代码。
  • 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。

语法示例:

package Day04_for_while;
// 打印6遍上课
public class Demo01 {
    public static void main(String[] args) {
        for (int i=0;i<=6;i++){
            System.out.println("上课");
        }
    }
}

课堂练习:

package Day04_whileTest;

public class Demo02 {
    public static void main(String[] args) {
        //打印10-1
        int i = 10;
        while(i > 0){
           /* System.out.println(i);
            i--;*/
            System.out.println(i--);
        }
        System.out.println("-------------");

        //打印1-10之间的数据和
        int sum = 0;
        i = 1;
        while(i < 11){
            sum += i;
            i++;
        }
        System.out.println("sum:"+sum);
        System.out.println("-----------");

        //打印-100之间能被3整除的数之和
        i = 1;
        sum = 0;
        while(i < 101){
            if(i%3 == 0){
                sum += i;
            }
            i++;
        }
        System.out.println("sum:"+sum);
    }
}

2.2 for用途

适用于循环次数明确的情况

3、while循环

语法:
初始化语句
while(条件判断语句){
循环体语句
条件控制语句
}

执行流程:
初始化语句 --> 条件判断语句
–>true–>循环体语句、条件控制语句–>条件判断语句–>true–>false–>结束循环

代码示例:

public class Demo01 {
    public static void main(String[] args) {
        int i =1;
        while(i < 11){
            System.out.println(i);
            i++;
        }
    }
}

课堂练习:

package Day04_whileTest;

/**
 * @author Ran
 * @since JDK 1.8
 *          我有个梦想,想获得小小目标
 *              1.假设一个月存1000,问需要多久成为千万富翁
 *              2.假设每个月存1000,第二个月开始每个月比上一个月多存500,问多久成为千万富翁
 *              3.作为一名收入正常的程序员,一个月存6000,每一年多存1200,问多久成为千万富翁
 *
 */
public class Demo03 {
    /*
    //  1.假设一个月存1000,问需要多久成为千万富翁
    public static void main(String[] args) {
        int month = 0;
        int money = 0;
        while (money<10000000){
            money += 1000;
            month++;
        }
        System.out.println("需要"+month+"个月");
        System.out.println("需要"+month/12+"年又"+month%12+"月");
    }
    */


    /*
    //2.假设每个月存1000,第二个月开始每个月比上一个月多存500,问多久成为千万富翁
    public static void main(String[] args) {
        int month = 0;
        int money = 0;
        int addMoney = 1000;
        while(money<10000000){
            money += addMoney;
            month++;
            addMoney +=500;
        }
        System.out.println("需要"+month+"个月");
        System.out.println("需要"+month/12+"年又"+month%12+"月");
    }
     */

    //  3.作为一名收入正常的程序员,一个月存6000,每一年多存1200,问多久成为千万富翁
    public static void main(String[] args) {
        int month = 0;
        int money = 0;
        int addMoney = 6000;
        while (money<10000000){
            money+=addMoney;
            month++;
            if(month%12==0){
                addMoney+=1200;
            }
        }
        System.out.println("需要"+month+"个月");
        System.out.println("需要"+month/12+"年又"+month%12+"月");
    }
}

4、do while循环

语法:
初始化语句
do{
循环体语句;
条件控制语句
}while(条件判断语句);

执行流程:

  • 先执行一次循环操作之后,再进行布尔表达式的判断。
  • 如果结果为true,则再次执行循环操作。
  • 如果结果为false,才会退出循环结构,执行后续代码。

注意:

do/while 循环与 while 循环的区别在于:do/while 循环会先执行一次循环内容,再进行判断

代码示例:

public class Demo05 {
    public static void main(String[] args) {
        int i = 1;
        do{
            System.out.println(i++);
        }while(i < 11);
    }
}

课堂练习:

package Day04_whileTest;

import java.util.Random;
import java.util.Scanner;

public class Demo06 {
    public static void main(String[] args) {
        int max = 100;    // 最大值
        int min = 0;    // 最小值
        int guess = 0;  // 用户猜的数
        Random ran = new Random();
        int ranNum = ran.nextInt(98)+2;  //  [2,99]
        Scanner input = new Scanner(System.in);


        do {
            System.out.print("请在("+min+"~"+max+")之间猜:");
            guess = input.nextInt();
            if(guess<ranNum){
                min = guess;
            }else if(guess>ranNum){
                max = guess;
            }

        }while (guess != ranNum);
        System.out.println("恭喜你猜对了"+ranNum);
    }
}

5、流程控制关键字

break:

  • break 在循环体语句中,作用是结束当前循环
  • break借助标号可以实现结束任意一层或者多层循环
// break 在循环体语句中,作用是结束当前循环
System.out.println("程序开始");
        //break 在循环体语句中,作用是结束当前循环
        for(int i = 1;i < 5;i++){
            for(int j = 1;j < 4;j++){
                if(j == 2){
                    break;
                }
                System.out.print(j);
            }
            System.out.println();
        }
        System.out.println("程序结束");
// break借助标号可以实现结束任意一层或者多层循环
System.out.println("程序开始");
        A:
        for(int i = 1;i < 5;i++){
            for(int j = 1;j < 4;j++){
                if(j == 2){
                    break A;
                }
                System.out.print(j);
            }
            System.out.println();
        }
        System.out.println("程序结束");

continue:

  • continue在循环体语句中的作用是结束一次循环开启下次循环
// continue在循环体语句中的作用是结束一次循环开启下次循环
System.out.println("程序开始");
        for(int i = 1;i < 5;i++){
            for(int j = 1;j < 4;j++){
                if(j == 2){
                    continue;
                }
                System.out.print(j);
            }
            System.out.println();
        }
        System.out.println("程序结束");

return:

  • return的作用是结束方法
// return的作用是结束方法
System.out.println("程序开始");
        for(int i = 1;i < 5;i++){
            for(int j = 1;j < 4;j++){
                if(j == 2){
                    return;
                }
                System.out.print(j);
            }
            System.out.println();
        }
        System.out.println("程序结束");

end、今天就到此为止吧,明天依旧光芒万丈

相关标签: java 编程语言