Java04 循环语句

Java04 流程控制语句

一、循环语句

1、for语句

1.1 格式
/*
     学习循环是为了减少大量重复代码的编写
*/
for(初始化语句;条件判断语句;条件控制语句){
     循环语句体;
}
  • 初始化语句:定义变量

  • 条件判断语句:循环条件

  • 条件控制语句:改变变量,语句不局限于++

  • 循环体语句:循环任务

1.2 小Demo统计水仙花数

需求:在控制台输出所有的“水仙花数”并统计水仙花的个数

public class LoopTest3 {
    /*
    水仙花数 指的是一个三位数,其个位、十位、百位的数字立方和等于原数
     */
    public static void main(String[] args) {
        printFlower();
        int count = getCount();
        System.out.println("水仙花数的个数为:"+count);
    }
​
​
    public static int getCount() {
        int count = 0;
        for (int i = 100; i <= 999; i++) {
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 10 / 10 % 10;
            if (ge * ge + shi * shi + bai * bai == i) {
                System.out.println(i);
                count++;
            }
        }
        return count;
    }
        public static void printFlower () {
            for (int i = 100; i <= 999; i++) {
                int ge = i % 10;
                int shi = i / 10 % 10;
                int bai = i / 10 / 10 % 10;
                if (ge * ge + shi * shi + bai * bai == i) {
                    System.out.println(i);
​
                }
            }
        }
}
1.3 for循环的注意事项
  • 循环中,用于控制循环的变量还可以放在循环体中继续进行使用

  • for循环{ }中定义的变量,每轮循环结束后都会从内存中释放

  • for循环 ( ) 中定义的变量,在整个循环结束后,都会从内存中释放

  • 循环语句()和 { } 之间不要写分号

    for(int i=1;i<=5;i++);{    这里带分号,分号表示语句运行结束,i会被释放,下面打印会报错
        System.out.printIn(i);
    }
  • 防止粗心造成的无限循环(死循环)

1.4 循环嵌套

循环嵌套: 在循环语句中, 继续出现循环语句

for(int i = 1;i<= 5;i++){     //外循环
    for(int j = 1;j<= 5;j++){       //内循环
        System.out.printIn("helloworld");
    }
}
​
//结果打印25遍helloworld

外循环执行一次,内循环执行一圈

2、while循环语句

2.1 格式
初始化语句;
while(条件判断语句){
    循环体语句;
    条件控制语句;
}
//打印5遍helloworld
public class WhileDemo {
    public static void main(String[] args) {
        int i =1;
        while(i<=5){
            System.out.println("helloworld");
            i++;
        }
    }
}

3、do...while循环语句

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

特点:无论判断条件是否满足都至少执行一次循环体

4、三种循环的区别

  • for、while和do...while的区别

    • for循环 和 while循环(先判断后执行)

    • do...while (先执行后判断)

  • for和while的区别

    • for循环中,控制循环的变量,在for循环结束后,就不能再次被访问到了

    • while循环中,控制循环的变量,在while循环结束后,该变量还可以继续使用

  • 如何选择

    for循环能实现的while循环都可以实现。一般明确循环次数用for循环,不明确循环次数用while

5、跳转控制语句

5.1 break

终止循环体内容的执行,也就是说结束当前的整个循环。只能在循环和switch当中进行使用

5.2 continue

跳过某次循环体内容的执行,继续下一次的执行。只能在循环中进行使用。

public class ContinueDemo {
    /*
       continue:跳过
     */
    public static void main(String[] args) {
        for (int i = 1; i <= 10 ; i++) {
            if(i==3 ||i==5){
                continue;
            }
            System.out.println("老师正在给第"+i+"位同学发冰棍儿~");
        }
    }
}

运行结果

老师正在给第1位同学发冰棍儿~
老师正在给第2位同学发冰棍儿~
老师正在给第4位同学发冰棍儿~
老师正在给第6位同学发冰棍儿~
老师正在给第7位同学发冰棍儿~
老师正在给第8位同学发冰棍儿~
老师正在给第9位同学发冰棍儿~
老师正在给第10位同学发冰棍儿~
5.3 使用跳转控制的注意事项
  • 这俩关键字下面不能写代码,因为执行不到,属于无效代码

  • 如果遇到了循环的嵌套,break和continue都是操作离自己最近的那个循环。如果想要区分,要对循环进行标号

    public class Demo {
        public static void main(String[] args) {
            lo:    //外循环的标号
            for (int i = 1; i <= 3; i++) {
                for (int j = 1; j <= 5; j++) {
                    if (j == 2) {
                        break lo;    //结束外循环
                    }
                    System.out.println("黑马程序员");
                }
            }
        }
    }

6、三种循环的无限循环格式

 //for的无限循环格式
        for(;;){
            System.out.println("我是for的无限循环格式");
        }
     

//while的无限循环格式
        while(true){
            System.out.println("我是whilw的无限循环格式");
        }
​
//do...while的无限循环格式
        do{
            System.out.println("我是do...while的无限循环格式");
        }while(true);

注意:一旦使用了无限循环,就要考虑循环出口问题

二、Random随机数

1、Random介绍

Random产生随机数

2、Random的使用步骤

import java.util.Random;   //导包,一般工具会自动导入
​
public class Test{
    public static void main(String[] args){
        Random r = new Random();
        int num = r.nextInt(20);  //1-20以内的随机数,不包含20
        int num1 = r.nextInt(100)+1;   //产生1-100的随机数,r.nextInt(100)产生的随机数范围 0~99不包含99
    }
}

3、猜数字小游戏

需求: 猜数字小游戏

1、Random产生一个1-100之间的随机数 2、Scanner键盘录入用户猜的数据 3、比大小

public class RandomTest {
    public static void main(String[] args) {
        Random r = new Random();
        Scanner sc = new Scanner(System.in);
​
        int randomNumber = r.nextInt(100) + 1;
​
        while (true) {
            System.out.println("请输入:");
            int inputNumber = sc.nextInt();
​
            if (inputNumber > randomNumber) {
                System.out.println("猜大了");
            } else if (inputNumber < randomNumber) {
                System.out.println("猜小了");
            } else {
                System.out.println("恭喜,猜对了!");
                break;
            }
        }
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值