黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(4)
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 int[3]
静态初始化
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]);//0System.out.println(arr[1]);//0System.out.println(arr[2]);//0
33.Java中内存分配
Java程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一篇区域都有特定的处理数据方式和内存管理方式。
数组在初始化时,会为存储空间添加默认值
整数:默认值0
浮点数:默认值0.0
布尔值:默认值false
字符:默认值是空字符
引用数据类型:默认值是null
注意:红色方框叫栈内存,蓝色方框叫堆内存
栈内存:存储局部变量
定义在方法中的变量,例如:arr
使用完毕,立即消失
堆内存:存储new出来的内容(实体,对象)
数据初始化时,会为存储空间添加默认值
整数:0
浮点数:0.0
布尔:false
字符:空字符
引用数据类型:full
每一个new出来的东西都有一个地址值
使用完毕,会在垃圾回收器空闲时被回收
34.数组内存图(单个数组)
35.数组内存图(多个数组)
黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(4)相关推荐
- 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)
黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...
- Python从入门到实战 基础入门视频教程(讲解超细致)-黄勇-专题视频课程
Python从入门到实战 基础入门视频教程(讲解超细致)-4123人已学习 课程介绍 Python基础入门视频教程:本课程从Python入门到纯Python项目实战.超100以上课时, ...
- 黑马程序员-我的入学笔记1-关于C#.net基础
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net ...
- 黑马程序员 一步一步往上爬 学习毕老师java视频的第03,04天
---------------------- <a href="http://edu.csdn.net/heima" target="blank"> ...
- 黑马程序员 一步一步往上爬 学习毕老师java视频第17,18,19天
---------------------- <a href="http://edu.csdn.net/heima" target="blank"> ...
- 2022年最新最全的Java零基础入门,零基础入门springboot,MySQL的学习
今天就来开始带领大家零基础入门Java开发 写在前面 为什么学习Java Java用途很广泛,如下图所示,Java可以做很多工作 JAVA语言发展史 2019年3月,JDK12版本发布. 2019年9 ...
- 资深程序员教你,用python入门的知识抓取抖音短视频,太厉害了
抖音短视频可以说是当下最流行的自媒体平台,而python编程同样也是目前最流行的编程语言. 今天,就让一位大厂的资深程序员,用最简单的方式,使用python抓取抖音短视频. 到时候我会把所有的源代码都 ...
- JavaScript整合版——后端程序员学js,只读一文直接零基础入门,大学生期末考试不挂科宝典。
文章目录 建议朋友们在学习的过程中,边写边看 一.hello 二.html 1. 标签语法 2.font标签 3.特殊字符 4.标题标签 5.超链接(重点) 6.列表标签 7.img标签 8.表格标签 ...
- 易语言零基础入门视频教程 易语言自学全套教程
易语言是一门以中文作为程序代码编程语言.易语言早期版本的名字为E语言.其最早的版本的发布可追溯至2000年9月11日.创造易语言的初衷是进行用中文来编写程序的实践,方便中国人以中国人的思维编写程序,并 ...
- python快乐编程—基础入门-Python零基础快乐学习之旅(K12实战训练)
内容简介 作者简介 第1章 基本概念 1-1 认识Python 1-2 Python的起源 1-3 Python语言发展史 1-4 Python的应用范围 1-5 跨平台的程序语言 1-6 系统的安装 ...
最新文章
- Java开发环境的搭建以及使用eclipse创建项目
- javascript笔记:深入分析javascript里对象的创建(上)续篇
- 0x10基本数据结构
- ajaxfileupload带多个参数上传方法
- web.xml配置详细
- c++字符串输入_【pwn】什么是格式化字符串漏洞?
- 深度学习基本概念笔记
- Win10系统java环境配置
- 你了解你的征信吗?这六个问题必须知道!
- How to make .dmg install for Mac
- this.value和$(this).val()的区别
- 用C#在Visual Studio写Javascript单元测试
- 零基础如何学习C语言
- 7.4 倒向随机微分方程-Feynman-Kac公式
- AI新星丨普林斯顿陈丹琦
- linux lzma 函数 调用,Lzma(7-zip)和zlib
- Pancake和import 语句——————————方法的重写
- jme之Hello Node
- k--最近邻算法(KNN)
- 不错的大数据课程体系(感谢某机构,希望不属于侵权)
热门文章
- php curl 下载文件
- 程序员如何成为自由职业者?
- notepad 怎么配置编译c语言,Notepad++ 配置c/c++编译环境
- ubb码转换的java类库 ubb2html_ubb代码转换为html
- fiddler过滤配置
- 面试题:谈谈你对Mysql数据库优化的见解
- fastjson:map转json字符串、json字符串转map、map根据key名拿value、JSONArray转list
- 计算机找不到970pro,缝缝补补又三年,老机器更新---三星970 pro SSD简测
- vue 插槽的版本变化1.x-2.6.0-3.x(详细)
- kotlin中文开发文档