Java基础篇之循环结构与随机数

目录

1.循环结构:

1.for循环:

2.while循环:

3.do...while循环语句:

       1.重点:三种循环区别:

4.循环嵌套:

5.跳转控制语句:

break结束的是离它最近的那个循环:

6.random产生随机数:


1.循环结构:

循环语句:

初始化语句

判断语句

循环语句体

控制语句

      Java中的循环结构语句:

for 循环  |   while循环  |  do ..while 循环

1.for循环:

for循环语句格式:

for(初始化语句;判断语句;控制条件语句){

循环体语句;

}

执行流程:

A:执行初始化语句

B:执行判断条件语句,看其结果是true还是false

C:若为false,则结束循环

       如果是true,执行循环体语句   

D:执行控制语句

E:回到B继续

案例1:用for循环控制台输出5次“HelloWorld”

public class forDemo {
    public static void main(String[] args) {
        for (int x = 1; x <= 5; x++) {
            System.out.println("HelloWorrld");
        }
    }
}

输出结果:

HelloWorrld
HelloWorrld
HelloWorrld
HelloWorrld
HelloWorrld

案例2:for循环输出1-5和5-1:

public class for_test {
    public static void main(String[] args) {
        for (int x = 1; x <= 5; x++) {
            System.out.println(x);
        }
        System.out.println("------------------");
        for (int x=5;x>=1;x--){
            System.out.println(x);
        }
    }
}

输出结果:

1
2
3
4
5
------------------
5
4
3
2
1

案例3:求1-5相加之和:

思路:

A:定义一个求和变量,初始化值是0

B:获取1-5的数据,使用for循环

C:把每一次获取的数据累加到求和变量

D:输出求和变量

public class for_test2 {
    public static void main(String[] args) {
        int sum = 0;
        for (int x = 1; x <= 5; x++) {
            sum += x;
        }
        System.out.println(sum);
    }
}

输出结果:15

案例4:计算1-100间偶数的和:

分析:

A:定义求和变量,初始化值是0

B:获取1-100之间的偶数,用for循环实现

C:拿到每一个获取的数据判断看是否是偶数

      如果是偶数,就累加

D:输出求和变量

public class for_test3 {
    public static void main(String[] args) {
        int sum = 0;
        for (int x = 1; x <= 100; x++) {
            if ((x % 2) == 0) {
                sum += x;
            }
        }
        System.out.println(sum);
    }
}

输出结果:2550

重点案例:水仙花数

水仙花数:

水仙花数指一个三位数,其各位数字立方和等于该数本身

例如:153为一个水仙花数

要求:求出所有的水仙花数

分析:

A:三位数即告知了范围

B:获取每个三位数的个位,十位,百位

C:拿个位,十位,百位的立方和和该数比较,如果相等,就说明该数为水仙花数,在控制台打印

public class for_test4 {
    public static void main(String[] args) {
        for (int x = 100; x < 1000; x++) {
            int ge = x % 10;//求得个位
            int shi = x / 10 % 10;//求得十位
            int bai = x / 100;//求得百位
            if (ge * ge * ge + shi * shi * shi + bai * bai * bai == x) {
                System.out.println(x);
            }
        }
    }
}

输出结果:

153
370
371
407

接上案例,统计水仙花数个数:

分析:

A:定义统计变量,初始化值为0

B:获取三位数,用for循环实现

C:获取每个位上的数据

D:判断数据是否为水仙花数,若是,则统计变量+1

E:输出统计变量

public class for_test4 {
    public static void main(String[] args) {
        int sum = 0;
        for (int x = 100; x < 1000; x++) {
            int ge = x % 10;//求得个位
            int shi = x / 10 % 10;//求得十位
            int bai = x / 100;//求得百位
            if (ge * ge * ge + shi * shi * shi + bai * bai * bai == x) {
                sum++;
            }
        }
        System.out.println(sum);
    }
}

输出结果:4

2.while循环:

while循环的语句格式:

     初始化语句

while(判断条件语句){

           循环体语句;

           控制条件语句;

}

举例1:控制台输出5次“HelloWorld”

public class whileDemo {
    public static void main(String[] args) {
        int x = 1;
        while (x<=5){
            System.out.println("HelloWorld");
            x++;
        }
    }
}

举例2:while循环求1-100之间的数据之和:

public class while_test {
    public static void main(String[] args) {
        int x = 1;
        int sum = 0;
        while (x <= 100) {
            sum += x;
            x++;
        }
        System.out.println(sum);
    }
}

3.do...while循环语句:

do...while循环语句格式:

初始化语句

do{

循环体语句;

控制条件语句;

}while(判断语句);(别忘分号)

案例1:do...while输出5句“HelloWorld”

public class dowhile_Demo {
    public static void main(String[] args) {
        int x = 1;
        do {
            System.out.println("HelloWorld");
            x++;
        } while (x <= 5);
    }
}

重点:三种循环区别:

do...while循环语句至少执行一次循环

而for和while循环语句要先进行条件的判断,然后看是否执行循环语句

for循环与while循环的区别:

for中初始化的变量,出了循环就不能使用了

显然,for循环更好,节省内存

推荐使用顺序:

for --while--do...while

4.循环嵌套:

循环嵌套:就是循环体语句本身就是一个循环语句

1.需求:输出一个四行五列的(*)图标

结果:

*****

*****

*****

*****

public class for_for {
    public static void main(String[] args) {
        for (int x = 1; x <= 4; x++) {
            for (int y = 1; y <= 5; y++) {
                System.out.print("*");
            }
            System.out.println();

        }
    }

}

输出:

*****

*****

*****

*****

结论:外循环控制的是行,内循环控制的是列

案例2:打印一个5行5列的三角形:

public class for_for2 {
    public static void main(String[] args) {
        for (int x = 1;x<=5;x++){
            for (int y=1;y<=x;y++){
                System.out.print("*");
            }
            System.out.println();

        }
    }
}

输出结果:

*
**
***
****
*****

案例三:打印久久乘法表:

public class for_ninenine {
    public static void main(String[] args) {
        for(int x=1;x<=9;x++){
            for(int y= 1;y<=x;y++){
                System.out.print(y+"*"+x+"="+x*y+"\t");
            }
            System.out.println();
        }
    }
}

注:其中\t表示一个缩进(一个tab键的位置)

输出结果:

1*1=1    
1*2=2    2*2=4    
1*3=3    2*3=6    3*3=9    
1*4=4    2*4=8    3*4=12    4*4=16    
1*5=5    2*5=10    3*5=15    4*5=20    5*5=25    
1*6=6    2*6=12    3*6=18    4*6=24    5*6=30    6*6=36    
1*7=7    2*7=14    3*7=21    4*7=28    5*7=35    6*7=42    7*7=49    
1*8=8    2*8=16    3*8=24    4*8=32    5*8=40    6*8=48    7*8=56    8*8=64    
1*9=9    2*9=18    3*9=27    4*9=36    5*9=45    6*9=54    7*9=63    8*9=72    9*9=81   

5.跳转控制语句:

break:中断的意思

用途:

A:switch语句中,用于结束switch语句

B:循环语句中,用于结束循环

public class my_break {
    public static void main(String[] args) {
        for (int x =1;x<=5;x++){
            if(x==3){
                break;
            }
            System.out.println("hi");
        }
    }
}

输出结果:

hi
hi

break结束的是离它最近的那个循环:

public class for_for2 {
    public static void main(String[] args) {
        for (int x = 1;x<=5;x++){
            for (int y=1;y<=x;y++){
                if(x==3){
                    break;
                }
                System.out.print("*");

            }
            System.out.println();

        }
    }
}

输出结果:

*
**

****
*****

如果要跳出外层循环如何实现?:

用带标签的语句:

格式:标签名:语句

public class for_for2 {
    public static void main(String[] args) {
        wc:
        for (int x = 1; x <= 5; x++) { //标签名wc
            nc:
            for (int y = 1; y <= x; y++) {//标签名nc
                if (x == 3) {
                    break wc;
                }
                System.out.print("*");

            }
            System.out.println();

        }
    }
}

输出:

*
**

continue:继续的意思

使用场景:

循环中。离开使用场景是没有意义的

break与continue的区别:

break:跳出整个循环

continue:跳出这一次的操作,进入下一次的执行

6.random产生随机数:

Random:用于产生随机数的类。用法与Scanner类似。

使用步骤:

A:导包

import java.util.Random;

B:创建对象

Random r = new Random();

C:获取随机数:

int number = r.nextInt();

案例一:获取5次一到10的随机数

package day_3;
/*
@author: MR.chan
@file: my_random.py
@time: 2020/03/23
@desc:
*/

import java.util.Random;

public class my_random {
    public static void main(String[] args) {
        Random r =new Random();
        for (int x = 1;x<=5;x++){
        int nb = r.nextInt(10);
        System.out.println(nb);
        }
    }
}

输出结果:

7
4
0
4
0

若要获得1-100的随机数,则换成:

int nb = r.nextInt(100)+1;

实现案例2:

猜数游戏:

系统产生1-100的随机数,请猜出这个数据是多少

package day_3;
/*
@author: MR.chan
@file: my_game.py
@time: 2020/03/23
@desc:
*/

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

public class my_game {
    public static void main(String[] args) {
        Random r = new Random();
        int num = r.nextInt(100)+1;
        System.out.println("请输入您猜的数字:");
        while (true){
            Scanner sc = new Scanner(System.in);
            int guss_number = sc.nextInt();
            if(guss_number==num){
                System.out.println("你猜对了");
                break;
            }else if(guss_numbernum){
                System.out.println("你猜大了");
            }
        }
    }
}

其中涉及死循环while(true){}

 

你可能感兴趣的:(Java基础篇之循环结构与随机数)