24.while 循环语句格式

 

基本格式:

while( 条件判断语句) {

循环体语句;

}

完整格式:

初始化语句;

while(条件判断语句) {

循环体语句;

条件控制语句;

}

执行流程:

(1)执行初始化语句

(2)执行条件判断语句,看其结果是true还是false

如果是false ,循环结束

如果是 true , 继续执行.

(3)执行循环体语句

(4)执行调价控制语句

(5)回到(2)继续

//for循环
    for(int i =1;i<=5;i++){
        System.out.println("Hellow world");
    }
    System.out.println("--------");
    //while循环实现
    int j =1;//定义变量
    while(j<=5){
        System.out.println("Hellow world");
        j++;//2 3 4 5 
    }

案例:珠穆朗玛峰

需求:

世界最高峰是珠穆朗玛峰(8848.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米

请问折叠多少次,可以折成珠穆朗玛峰的高度?

分析:

(1)因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况更适合使用while循环

while(条件判断语句) { 循环体}

(2)循环的执行过程中每次纸张折叠,智障的厚度要加倍,因此需要定义纸张厚度,在循环中使厚度加倍

double paper = 0.1;

while ( 条件判断语句) {

paper *=2

(3)折叠的过程中当纸张的厚度大于珠峰就停止了,因此继续执行的要求纸张厚度小于珠峰高度

int zf = 8844430;
while(paper ≤ zf ) {
count ++;
}
int count = 0;
    double paper = 0.1;
    int zf=8844430;
    while(paper<=zf){
        paper *=2;
        count++;
    }
    System.out.println("需要折叠:"+ count +"次");
    //输出: 需要折叠27次

25. do ...whlie循环语句格式

基本格式:

do {

循环体语句;

} while(条件判断语句);

完整格式:

初始化语句;

do {

循环体语句;

条件控制语句;

}while(条件判断语句);

执行流程:

(1)执行初始化语句

(2)执行循环体语句

(3)执行条件控制语句

(4)执行条件判断语句。看其结果是true还是false

如果是false,循环结束

如果是true, 继续执行

(5)回到(2)继续

for(int i =1;i<=5;i++){
             System.out.println("Hellow world");
    }
    System.out.println("--------");
    //do ...while 循环实现
     int j =1;
do  {
    System.out.println("Hellow world");
    j++;
    }while(j<=5);
      }

26.三种循环的区别

for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先循环后执行)

do ...while循环限制性一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

for和while的区别:

条件控制语句所控制的自增变量,因为归属for循环的语法结构中,for循环结束后,就不能再次被访问到了

条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用

死循环格式:

for(;;){ }
while(true){ }
do { }while()
//for循环
 for(int i=1;i<3;i++){
    System.out.println("inspare 2 M4/3 | 5.2K | F/1.7 - 16 ");
 } 
 System.out.println("------");
//while循环
int j = 1;
while(j<3){
    System.out.println("Mavic 3");
    j++;
}
System.out.println("------");
//do...while循环
int k =3;
do{
    System.out.println("fpv");
    k++;
}while(k<3);
//输出:inspare 2 M4/3 | 5.2K | F/1.7 - 16 
//inspare 2 M4/3 | 5.2K | F/1.7 - 16 
//------
//Mavic 3
//Mavic 3
//------
//fpv

27.跳转控制语句概述

continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行

break 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环

for(int i = 1;i<=5;i++){
        if(i%2 == 0){
            continue;

        }
    System.out.println(i);
    }
    System.out.println("------");
    for(int n = 1;n<=5;n++){
        if(n%2 == 0){
           break;

        }
    System.out.println(n);
    }
    //输出:1
//3
//5
//------
//1

28.循环嵌套

语句结构:

顺序语句 以分号结尾,表示一句话的结束

分支语句 一对大括号表示if的整体结构,整体描述一个完整的switch语句

                一对大括号表示switch的整体结构,整体描述一个完整的switch语句

循环语句 一对大括号表示for的整体结构,整体描述一个完整的for语句.

                一对大括号表示while的整体结构,整体描述一个完整的while语句

                do...while以分号结尾,整体描述一个完整的do ..while语句
任何语句对外都可以看成是一句话,一句代码

分支语句中包含分支语句称为分支嵌套

循环语句中包含循环语句称为循环嵌套

System.out.println("0时0分");
    System.out.println("0时1分");
    System.out.println("0时2分");
    System.out.println("0时3分");
    System.out.println("------");
    System.out.println("1时0分");
    System.out.println("1时1分");
    System.out.println("1时2分");
    System.out.println("1时3分");
    System.out.println("------");
    System.out.println("2时0分");
    System.out.println("2时1分");
    System.out.println("2时2分");
    System.out.println("2时3分");
    System.out.println("------");
    System.out.println("------");
    //循环改进
    for(int minute = 0;minute<4;minute++){
        System.out.println("0时" + minute + "分");
    }
    System.out.println("------");
    for(int minute = 0;minute<4;minute++){
        System.out.println("1时" + minute + "分");
    }
    System.out.println("------");
    for(int minute = 0;minute<4;minute++){
        System.out.println("2时" + minute + "分");
    }
    System.out.println("------");
    System.out.println("------");
    //循环嵌套 外循环控制小时的范围,内循环控制分钟的范围
    for(int hour = 0;hour<3;hour++){
        for(int minute = 0;minute<4;minute++){
            System.out.println( hour +"时" + minute + "分");
        }
        System.out.println("------");
    }
    //24小时60分钟制
     for(int hour = 0;hour<24;hour++){
        for(int minute = 0;minute<60;minute++){
            System.out.println( hour +"时" + minute + "分");
        }
        System.out.println("------");
    }

29.Random

作用:产生一个随机数

使用步骤:

导包

import java.util.Random

//导包动作必须出现在类定义的上面

创建对象

Random r = new Random();

//上面这个格式里面,r是变量名,可以变,其他的都不允许变

获取随机数

int number = r.nextInt(10);//获取数据的范围:[0,10) 包括0,不包括10

//上面的格式里面,number是变量名,可以变,数字10可以变,其他的都不允许变
import java.util.Random;
public class test2 {
    public static void main(String[] args) {
    Random r = new Random();
    int number = r.nextInt(10);
    System.out.println("number:"+ number);
       }
}
import java.util.Random;
    public class test2 {
    public static void main(String[] args) {
    Random r = new Random();
  //用循环获取10个随机数
    for(int i = 0;i<10;i++){
        int number = r.nextInt(10);
    System.out.println("number:"+ number);
    //需求:获取一个1-100之间的随机数
    int x = r.nextInt(100) + 1;
    System.out.println("number:"+ x);
     }
}

案例:猜数字

需求:程序自动生成一个1-100的数字,使用程序实现猜出这个数字是多少?

当猜错的时候根据不同情况给出相应提示

如果猜的数字比真实数字大,提示你猜的数据大了

如果猜的数字比真实数字小,提示你猜的数据小了

如果猜的数字与真实数字相符,提示恭喜你猜中了

分析:

(1)要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1-100

(2)因为无法预知几次能够猜中,因此猜数字这个操作应该是反复进行的,需要使用循环,而while循环通常用于描述未知循环次数的循环

(3)使用程序实现猜数字,每次均要输入猜测的数值,需要使用键盘录入实现

(4)比较输入的数字和系统产生的数据,需要使用分支数据。这里使用if..else..if..格式,根据不同情况进行猜测显示,当猜中后使用break结束循环即可

import java.util.Random;
  import java.util.Scanner;
  public class test2 {
  public static void main(String[] args) {
  Random r = new Random();
    int number = r.nextInt(100) + 1;

    while(true){
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入您要猜的数字:");
    int gussNumber = sc.nextInt();
    
    if(gussNumber>number){
    System.out.println("你猜的这个破数字"+gussNumber+"大了大了!!!");
    }else if(gussNumber<number){
        System.out.println("你猜的这个破数字"+gussNumber+"小了小了!!!");
    }else{
        System.out.println("终于猜对了,真费劲");
        break;
    }
}
 }
}

30.IDEA

IDEA本博主还没搞懂,先用code吧(已经裂开)

31.数组

数组的定义格式

格式一:数据类型[ ] 变量名

范例: int [ ] arr

定义了一个int类型的数组,数组名是arr

格式二:数据类型 变量名

范例: int arr[ ]

定义了一个int类型我的变量,变量名是arr数组

Java中的数组必须是先初始化,然后才能使用

所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值

动态初始化:初始化时指定数组长度,由系统为数组分配初始值

格式: 数据类型[ ]变量名 = new 数据类型[数组长度]

范例: int [ ] arr = new

静态初始化

32.数组元素访问

数组变量访问方式

格式:数组名

数组内部保存的数据的访问格式

格式:数组名[索引]

索引是数组中数据的编号方式

作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名

特征1:索引从0开始

特征2:索引是连续的

特征3:索引逐一增加,每次加1

int[] arr = new int[3];
     /*左边:
     int:说明数组中的元素类型是
     []:说明这是一个数组
     arr: 这是数组的名称
     右边:
     new:为数组申请内存空间
     int:说明数组中的元素类型是int类型
     [ ] :说明这是一个数组
     3: 数组长度,其实就是数组中的元素个数
     */ 
    System.out.println(arr);//[I@24d46ca6  申请空间地址
    System.out.println(arr[0]);//0
    System.out.println(arr[1]);//0
    System.out.println(arr[2]);//0

33.Java中内存分配

Java程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一篇区域都有特定的处理数据方式和内存管理方式。

数组在初始化时,会为存储空间添加默认值

整数:默认值0

浮点数:默认值0.0

布尔值:默认值false

字符:默认值是空字符

引用数据类型:默认值是null

学java黑马 java黑马程序员教材_数组

学java黑马 java黑马程序员教材_开发语言_02

注意:红色方框叫栈内存,蓝色方框叫堆内存

栈内存:存储局部变量

定义在方法中的变量,例如:arr

使用完毕,立即消失

堆内存:存储new出来的内容(实体,对象)

数据初始化时,会为存储空间添加默认值

整数:0

浮点数:0.0

布尔:false

字符:空字符

引用数据类型:full

每一个new出来的东西都有一个地址值

使用完毕,会在垃圾回收器空闲时被回收

34.数组内存图(单个数组)

学java黑马 java黑马程序员教材_学java黑马_03

 35.数组内存图(多个数组)

学java黑马 java黑马程序员教材_java_04