“嗨我是学长,今天的你过得还好吗?”
“这里是offer学院,帮你轻松拿offer”
- 2022.11.11 -
在第七节,我们了解了循环的概念,这节我们具体学习循环的使用。
在java中,提供给我们的循环有多种,while,do...while,for等,本节主要涉及while的使用,for循环放在下节讲述。我们一起来学习吧。
1、语法结构:
while(条件){
//循环体部分
}
分析说明:
在每次循环开始前,首先会判断条件是否成立,如果计算结果为true,就会执行循环体内部语句。如果计算结果为false,会跳出循环,执行后续代码。
示例代码如下:
public class WhileLoop1 {
public static void main(String args[]) {
int i = 1;
while (i <= 5) {
System.out.println(i); // 打印i
i ++; // i自增1
}
}
}
解析:
o在循环体内部,除了打印变量i的值,还有一个语句:i++,这个语句的作用是让变量i自增1。如果没有这个语句,i的值永远不会改变,所以循环条件永远成立,程序将陷入死循环,直到将资源耗尽才会停止,所以要杜绝编写死循环代码。
2、正常示例代码:
需求:1到100的累加
代码如下:
public class WhileLoop2 {
public static void main(String[] args) {
int sum = 0; // 累加和
int i = 1;
while (i <= 100) {
sum = sum + i; // 使sum和i相加,并将值再次赋值给sum
i ++; // i自增1
}
System.out.println("1到100的累加和为:" + sum);
}
}
解析:
3、无限死循环,永远执行,直到冒烟:
常量的值在编译期就能确定,true字面量(常量),在编译的时候值就确定了在编译代码的时候,就能确定while(true)是个死循环。
public class whileTest {
public static void main(String[] args) {
/**
* 无限死循环 永远执行
*/
while (true) {
//当条件为TRUE 会永远执行 不会停止
System.out.println("我会永远执行跑下去~");
}
//后续代码将不可能会被执行 而报错
System.out.println("我会停下来休息下吗?");
}
}
变量的值,在运行期才能确定,x变量,在编译的时候,无法确定x的值只有在运行的时候,才能确定x的值,在编译时while(x<10)无法判断是否是死循环只有运行了之后,才会发现是死循环,但是此时已经晚了。
public class whileTest {
public static void main(String[] args) {
/**
* 无限死循环 永远执行
*/
int x = 2;
while (x < 5) { //由于缺少 迭代部分 致使 x<5 永远为true
//条件 x<5 判定为真 会永远执行 不会停止
System.out.println("我会永远执行跑下去~");
}
//后续代码将不可能会被执行 在编译时无法确定X的值 这行代码不会报错
System.out.println("我会永远执行跑下去~");
}
}
在正常代码中,我们应该避免这种错误。
dowhile循环的功能与while循环类似,不同点在于:while循环是先判断条件,再执行循环体;而dowhile循环则是先执行循环体,再判断条件,如果条件成立继续执行循环,条件不成立则终止循环。
dowhile语法格式如下:
do {
// 循环体
} while (条件);
无论条件成立与否,dowhile循环都至少执行一次。而while循环可能一次都不会执行。
代码示例如下:
import java.util.Scanner;
public class whileTest {
public static void main(String[] args) {
/**
* 判断输入数字是正数还是负数
*/
//从键盘接受数据
System.out.println("请输入一个数字:");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
do {
System.out.println("这次输入的数字为:" + num);
if (num > 0) {
System.out.println(num + " 为正数~");
} else if (num < 0) {
System.out.println(num + " 为负数~");
}
//再次输入下一个数字以做判断
System.out.println("请输入一个数字:");
num = in.nextInt();
} while (num != 0);
}
}
本节我们学习了while的两种用法以及对应的不同,下节课我们将要学习java中循环使用频率最高的for循环,下节课见。
我们下期再见!
END
文案编辑|offer学长
文案配图|offer学长
原创内容|田老师出品
页面更新:2024-03-25
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号