IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 小W的Java学习之路:java基础(三)-循环,循环嵌套,random随机数,debug -> 正文阅读

[Java知识库]小W的Java学习之路:java基础(三)-循环,循环嵌套,random随机数,debug

1.for循环

1.1.for的格式

格式:
    for(1初始化语句;2条件判断语句;3条件控制语句){
    	4循环体语句;
    }
    
执行流程:
	1   2  4  3   2  4  3   2

1.2循环输出10次广告

package com.itheima01;

public class Demo01 {
    public static void main(String[] args) {
        //循环10次广告

        for(int i=0; i<10; i++){         // 0 1 2 3 4  5 6 7 8 9
            System.out.println("秋天不吃西瓜...");
        }
        

        for(int i=1; i<=10; i++){        // 1 2 3 4 5  6 7 8 9 10
            System.out.println("秋天吃桃...");
        }
        
    }
}

1.3循环1-5和5~1

package com.itheima01;

public class Demo02 {
    public static void main(String[] args) {

        //输出1-5的数字
        for(int i=1; i<=5; i++){
            System.out.println(i);
        }

        //输出5-1的数字
        for(int i=5; i>=1; i--){
            System.out.println(i);
        }

    }
}

1.4求1-5的和

package com.itheima01;

public class Demo03 {
    public static void main(String[] args) {

        //求1-5的和
        int sum = 0;

        for(int i=1; i<=5; i++){
            sum = sum+i;
        }
        
        System.out.println(sum);        
        /*
            sum = 0+1;         sum=1
            sum = 1+2;         sum=3
            sum = 3+3;         sum=6
            sum = 6+4;         sum=10
            sum = 10+5;        sum=15
         */
    }
}

1.5求数字的奇偶数

package com.itheima01;

public class Demo04 {
    public static void main(String[] args) {

        //循环开始就是0,循环结束10
        for(int i=0; i<=10; i++){
            //判断语句
            if(i%2==0){
                System.out.println(i+"是偶数");
            }else{
                System.out.println(i+"是奇数");
            }
        }
    }
}

2.while循环

2.1while的格式

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

2.2输出1-5和5-1

package com.itheima01;

public class Demo05 {
    public static void main(String[] args) {

        //输出1-5
        int i = 1;
        while(i<=5){
            System.out.println(i);
            i++;
        }

        //输出5-1
        int j = 5;
        while(j>=1){
            System.out.println(j);
            j--;
        }

    }
}

2.3求1-100的和

package com.itheima01;

public class Demo06 {
    public static void main(String[] args) {
        //while循环求1-100的和
        int sum = 0;

        int i = 1;

        while(i<=100){
            sum += i;
            i++;
        }

        System.out.println("1到100的和是" + sum);

    }
}

2.4珠穆朗玛峰

package com.itheima01;

public class Demo07 {
    public static void main(String[] args) {
        //定义纸厚度
        double zhi = 0.0001;
        //定义山高度
        int shan = 8848;

        //定义变量记录折叠的次数
        int count = 0;

        //编写while循环
        while(zhi <= shan) {
            //每折一次纸让纸的厚度乘2
            zhi = zhi*2;
            //每折一次纸让次数加1
            count++;
        }
        
        //循环结束后, 最终打印次数
        System.out.println(count);

    }
}

3.do…while

3.1do…while的格式

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

3.2打印1-5

package com.itheima01;

public class Demo08 {
    public static void main(String[] args) {
        //打印1-5
        int i = 1;

        do{
            System.out.println(i);
            i++;
        }while (i<=5);

    }
}

4.三种循环区别

for:	
	在明确循环次数的时候建议使用

while:
	在不明确循环次数的时候建议使用
	在写死循环时候建议使用
        while(true){
        }
        
do..while:
	没有使用场景...

一:格式不同

  1. for循环各部分形成一个整体;

  2. while循环和do_while循环的初始化语句和循环定义分开;

  3. while循环和do_while循环的初始化语句和控制条件语句一般都会省略,而for循环一般不省略;

二:初始化语句不同

  1. 定义位置不同;

  2. 作用域不同:

     for循环的初始化条件仅限循环内部使用;
    
     while循环和do_while循环的初始化条件可以在循环外部使用;
    

三:循环体执行次数不同

  1. for循环和while循环的循环体语句执行0~n次;

  2. do_while循环的循环体语句执行1~n次,即至少执行1次;

四:应用场景不同

  1. for循环和while循环可以互换,while循环更加简洁;

  2. do_while循环在循环体语句至少需要执行1次时使用;
    ————————————————
    原文链接:

5.Debug代码调试

debug的功能就是查看代码的执行流程,看代码中的问题

用法:
	1.加断点,哪里不会点哪里
	2.右键选择debug运行
	3.点F8向下执行
	4.点击stop结束程序
	5.点断点,去掉断点

6.循环跳转语句

continue:
	在循环中,表示跳过某次循环,进入下一次循环
break:
	在循环中,表示终止循环,整个当前循环就结束了
	
注意事项:
	1.任何循环都可以使用,for   while   do.while..
	2.必须用在判断语句中
package com.itheima02;

public class Demo01 {
    public static void main(String[] args) {

        //输出1-100,跳过7的倍数
        for(int i=1; i<=100; i++){
            if(i%7==0){
                continue;
            }
            System.out.println(i);
        }
    }
}

7.循环嵌套

package com.itheima02;

public class Demo02 {
    public static void main(String[] args) {
        //一天有24个小时
        for(int i=0; i<24; i++){
            //一小时有60分钟
            for(int j=0; j<60; j++){
                System.out.println(i + "小时" + j+"分钟");
            }
        }

        /*
            i=0
                    j=0       0时0分
                    j=1       0时1分
                    j=2       0时2分
                    ...
                    j=59      0时59分
            i=1
                    j=0       1时0分
                    j=1       1时1分
                    j=2       1时2分
                    ...
                    j=59      1时59分
             i=23
                    j=0       23时0分
                    j=1       23时1分
                    j=2       23时2分
                    ...
                    j=59      23时59分
         */

    }
}
package com.itheima02;

public class Demo03 {
    public static void main(String[] args) {

        //循环4次代表4行
        for(int i=0; i<4; i++){
            //循环5次代表一行5颗星
            for(int j=0; j<5; j++) {
                System.out.print("*");
            }
            //换行
            System.out.println();
        }
        /*
             *****
             *****
             *****
             *****
         */

    }
}

8.Random随机数

1.导包
	import java.util.Random;

2.创建对象
	Random r = new Random();
	
3.生成随机数(0-9的随机数)
	int a = r.nextInt(10);
package com.itheima02;
//导包
import java.util.Random;

public class Demo05 {
    public static void main(String[] args) {

        //创建对象
        Random r = new Random();

        //生成0-9的随机数
        int a = r.nextInt(10);
        //打印
        System.out.println(a);

        //生成0-99的随机数
        int b = r.nextInt(100);
        //打印
        System.out.println(b);

        //思考,每次生成的都是0到?的数字,如果我想要1-10的随机数怎么办?
        int c = r.nextInt(10) + 1;
        
        //思考,如果想要有个11~20的随机数
        int d = r.nextInt(10) + 11;
        
        //思考规律,如果想要生成n~m的随机数
        //      r.nextInt(m-n+1) + n;
        
        //想要20-40的随机数
        //         0 ~ 20
        int e = r.nextInt(21) + 20;
    }
}

除此之外:
Random 有两个构造方法:

public Random()
public Random(long seed)
其实第一个无参构造方法会默认以当前时间作为种子。那么什么是种子呢?

先来看看 Random 的 next() 方法:

protected int next(int bits) {
long oldseed, nextseed;
AtomicLong seed = this.seed;
do {
oldseed = seed.get();
nextseed = (oldseed * multiplier + addend) & mask;
} while (!seed.compareAndSet(oldseed, nextseed));
return (int)(nextseed >>> (48 - bits));
}
seed 就是种子,它的作用就是用于生成一个随机数。

  1. 两个构造方法有什么不同?
    现在看一个例子,对比这两个构造方法有什么不同。

public class RandomDemo {

public static void main(String[] args) {
    for(int i = 0; i < 5; i++) {
        Random random = new Random();
        for(int j = 0; j < 5; j++) {
            System.out.print(" " + random.nextInt(10) + ", ");
        }
        System.out.println("");
    }
}

}
以上使用了 Random 无参的构造方法,运行结果如下:

2 0 3 2 5
6 4 1 9 7
9 1 8 3 6
2 5 3 5 6
9 9 9 4 5
可以看出每次的结果都不一样。下面使用 Random 的有参构造方法:

public class RandomDemo {

public static void main(String[] args) {
    for(int i = 0; i < 5; i++) {
        Random random = new Random(47);
        for(int j = 0; j < 5; j++) {
            System.out.print( + random.nextInt(10) + " ");
        }
        System.out.println("");
    }
}

}
打印结果如下:

8 5 3 1 1
8 5 3 1 1
8 5 3 1 1
8 5 3 1 1
8 5 3 1 1
这是因为无参的构造方法是以当前时间作为种子,每次的种子都不一样,随机性更强。而有参的构造方法是以固定值作为种子,每次输出的值都是一样的。
————————————————

原文链接:

9.猜数字小游戏

package com.itheima02;

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

public class Demo06 {
    public static void main(String[] args) {
        /*
            程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
             根据不同情况给出相应的提示
                如果猜的数字比真实数字大,提示你猜的数据大了
                如果猜的数字比真实数字小,提示你猜的数据小了
                如果猜的数字与真实数字相等,提示恭喜你猜中了
         */

        //1.生成一个1-100的随机数
        Random r = new Random();
        int num = r.nextInt(100)+1;

        //循环
        while (true) {
            //2.键盘输入一个数字
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个1-100的整数:");
            int a = sc.nextInt();

            //3.比较大小
            if (a > num) {
                //3.1猜大了
                System.out.println("你猜大了~");
            } else if (a < num) {
                //3.2猜小了
                System.out.println("你猜小了");
            } else {
                //3.3猜中了
                System.out.println("恭喜猜对了!");
                //结束循环
                break;
            }
        }

    }
}

RESPECT&LOVE :一起进步&一起成长 请添加图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:02:20  更:2021-09-12 13:03:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:12:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码