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
注意:红色方框叫栈内存,蓝色方框叫堆内存
栈内存:存储局部变量
定义在方法中的变量,例如:arr
使用完毕,立即消失
堆内存:存储new出来的内容(实体,对象)
数据初始化时,会为存储空间添加默认值
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:full
每一个new出来的东西都有一个地址值
使用完毕,会在垃圾回收器空闲时被回收