Java基础-循环结构

for循环

for 循环是 Java 中最常用的循环。适用于知道循环次数的场 景。

for循环的语法格式

表达式1
for(;表达式2;){
循环体;
表达式3
}
或者
for(表达式1;表达式2;表达式3){
循环体;
}

for循环的执行流程

1. 首先执行表达式 1 表达式 1 通常写循环的初始化内容 ,即循环的初始状态。表达式 1 只会执行一次。
2. 判断表达式 2 的真假。 表达式 2 是循环的判断条件 ,表达式2的值为 true ,执行循环体,如果表达式 2 的值为 false ,则结束循环,执行循环之外的代码。
3. 循环体执行完毕之后,执行表达式 3 表达式 3 是循环的控 制条件,这个条件可以影响循环的次数
4. 表达式 3 执行完毕之后,回到步骤 2 继续判断。
表达式 2 的结果为 false 时,循环会结束。

随机数

Java 中使用 Random 类来产生随机数。具体使用步骤如下:
1. 导包。 ----import java.util.Random;
2. 创建 Random 对象。 Random random = new Random();
3. 获取随机数。 int num = random.nextInt(10);-----[0,10)
随机数应用场景:验证码

while循环

while Java 中第二常用的循环。 while 循环能实现 for 循环全 部的功能 ,即: while 循环可以替代 for 循环。除此以外, while 循环还适用于不知道具体循环次数的循环 (只知道循环结束条件,但不清楚循环多少次结束。)
while 循环最大的特点:适用于不知道循环次数的循环。 在开发中,如果知道循环次数,往往使用 for 循环(因为 for 循环的格式比较简洁,书写比较方便),只有不知道 循环次数的时候,才使用 while 循环。

while循环的语法格式

while 循环的完整语法格式是:
循环的初始条件;//对应for循环的 表达式1
while(条件表达式){//对应for循环的 表达式2
循环体;//对应for循环的 循环体
循环增量;//对应for循环的表达式3
}

while循环的执行流程

1. 计算条件表达式的值。
2. 如果条件表达式的值为 true ,执行循环体。
3. 执行完循环体以后,回到步骤 1
4. 如果条件表达式的值为 false ,结束循环的执行。

while总结

1. while 可以实现 for 循环的全部功能
2. while 循环善于处理不知道循环次数的循环。
3. 开发中使用的是 while 的第二种功能。

do..while循环

do...while Java 中第三种循环结构,是使用频率最低的循环结构。do..while 循环能实现 while 循环全部的功能 ,do...while循环和 while 循环的唯一区别是, do..while 循环会
至少执行一次循环

do..while循环的语法格式

do{
循环体;
}while(表达式);
注意:上述格式中, while( 表达式 ) 后面有一个分号。

do...while循环的执行流程

1. 执行循环体语句。
2. 判断表达式的值是否为 true 。如果为 true ,执行步骤 1
3. 如果表达式的值为 false ,结束循环。
while 循环是先判断条件在决定是否执行循环体
do..while 是先执行循环体再判断条件。即:至少执行一次循环体。

forwhiledo..while区别

do..while 至少执行一次循环体。
for 循环中定义的变量 i ,只能在 for 循环里用,出了 for 循环就不能使用了。
对于 while 循环的 j 以及 do..while 循环的 k 来说,他们定义在了循环的外面,因此可以在循环结束后使用。

死循环

死循环,即无限循环 。循环一旦开始就永远不会停止。 在开 发过程中,应当避免死循环。

死循环示例-for循环

代码:

public static void main(String[] args) {
for( ; ; ) {
System.out.println("hello world");
}
System.out.println("end");//这行代码永远执
行不到
}
上面的示例,没有任何语句控制循环的结束。所以会无限打印hello world ,导致循环后面的代码永远执行不到。
注意:上述写法会在编译时报错
代码:
public static void main(String[] args) {
for(int i = 0 ; i != 10 ; i += 3 ) {
System.out.println("hello world");
}
System.out.println("end");//这行代码永远执
行不到
}
上面的示例,虽然表达式完整,但是 i != 10 会永远为真,因此也是一个死循环。导致for 循环后面的代码无法执行

死循环示例-while

代码:
public static void main(String[] args) {
int i = 0;
while(i < 100) {
System.out.println(i);
}
System.out.println("end");
}
上面的示例,也是一个死循环, i 初始值是 0 ,在循环体里没有任何操作去改变 i 的值,因此 i < 100 永远为真,循环会无限执行,while 循环后面的代码永远不会被执行到。
很多新手,在写 while 循环的时候容易漏写 i++
正是因为这个原因,通常使用 for 循环不使用 while 循环。
代码:
public static void main(String[] args) {
while(true) {
System.out.println("hello world");
}
}
这也是一个死循环。循环条件永远是 true

死循环示例-do..while

代码:

public static void main(String[] args) {
int i = 0;
do {
System.out.println(i);
}while(i < 100);
System.out.println("end");
}
上面的示例,和 while 死循环的案例一样,也是因为 缺少 i++。
代码:
public static void main(String[] args) {
do {
System.out.println("hello world");
}while(true);
}
这也是一个死循环。循环条件永远是 true

如何避免死循环

1. 对于知道循环次数的情形,使用 for 循环。 ----for 循环的语法格式,表达式3 处写循环控制语句,不容易忘记。 while和do..while 容易忘记。
2. 写完代码以后,找临界值试试验证代码的正确性。
3. 借助 break 结束循环。

breakcontinue关键字

结束循环

结束循环的方式一共有 2 种:
1. 循环正常结束,即循环条件不再满足时,循环正常结束。
2. 强行结束循环,即 break 关键字。
在开发中无论是循环的正常结束还是通过 break 让循环结 束,都是非常常见的。

break关键字

break 关键字一共 2 个用途:
1. 用在 switch..case 语句中的每个 case 里,用于结束 switch 语 句。
2. 用在循环结构的循环体中,用于结束当前循环的执行。 ---即:break 写在哪个循环里,就结束哪个循环。
如果 break 出现在循环体里, break 用于结束当前循环。
如果循环体内, break 后面还有别的代码, break 后面的代码不会执行。---- 仅限循环体内的代码。循环体外的代码可以正常执行。
如果循环次数尚未用完,执行到了循环体中的 break 语句,也是直接结束循环,未执行的循环次数不再执行。
break可以出现在 for 循环里,可以出现在 while 循环里,也可以出现在do..while 循环里。
break 的使用场景举例:
1. 从数组中查找某个数据,一旦找到,就结束循环。 --- 数组是后面要学习的内容。
2. 用在死循环里,用于结束死循环(通常是达到了某个条件)。
3. 游戏里,将游戏中的怪物随机刷新在游戏地图里,如果怪物被刷新到了障碍物里(例如:河、山、树等),重新随机怪物的位置。
break 关键字通常情况下和 if 语句搭配使用。

continue关键字

continue 关键字的作用是用于结束本次循环开启下一次循 。例如:一共进行 10 次循环,但执行到第 5 次循环时执行 continue,会不再执行任何循环体,直接进入下一次循环。
continue 只是结束本次循环,而不是结束整个循环。
continue 通常情况下也是与 if 语句搭配使用。

breakcontinue总结

1. break 用于结束当前循环。
2. continue 用于结束本次循环。
3. break continue 通常是与 if 语句连用。即某种条件满足时才break continue
4. break 使用比较频繁,经常用在死循环里结束循环。或者用在for 循环里提前结束循环。
5. continue 很少使用。

循环标号

循环标号是指用于标识循环开始和结束的标识符,通常是一个合法的标识符。主要用于循环的情况,使得break 和continue可直接跳转到标签标记的位置 ;
语法
变量名:for(...){
break/continue 变量名;
}
变量名:while(..){
break/continue 变量名;
}
变量名:do{
break/continue 变量名;
}while(...)

Debug断点调试

断点调试是开发中常用的调试技巧之一。
所谓的断点调试,指的是在程序的某个位置打上断点,程序在运行的过程中就会停在断点处,等待我们进行下一步的操作。

添加断点、移除断点

在代码行号的左侧,双击鼠标左键,即可添加上断点;再次双击鼠标左键,即可移除断点。

可以添加多少断点?

理论上来讲,每一行都可以添加断点。实际上我们只在关键代码处添加断点。
何为关键代码处?
1. 复杂业务逻辑代码的开头位置
2.for 循环的开始处
3. 容易出现错误的代码处。

如何调试代码

Debug 调试启动
或者
之后会进入调试控制台
控制台按钮含义

断点调试有什么用?

断点调试就像电影的慢镜头一样,能让你看到每一步是怎么执行的。能看到每一步执行后,程序中的数据发生了什么样的变化。例如:变量值的更新。

断点调试总结

断点调试是开发项目必须具备的技能。
一定要学会添加、删除断点,学会看断点下各个变量的变化。
  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值