网站首页 > java教程 正文
“嗨我是学长,今天的你过得还好吗?”
“这里是offer学院,帮你轻松拿offer”
- 2022.11.11 -
在第七节,我们了解了循环的概念,这节我们具体学习循环的使用。
在java中,提供给我们的循环有多种,while,do...while,for等,本节主要涉及while的使用,for循环放在下节讲述。我们一起来学习吧。
一、方式1-while循环
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);
}
}
解析:
- 1.定义两个变量sum和i分别用于存放累加和以及要累加的数字。
- 2.循环开始前判断条件i<=100是否成立,此时i=1,成立,执行循环体内代码。
- 3.循环体内代码第一次执行,sum=1,i自增1变为2。
- 4.再次判断循环条件,成立就继续执行循环体,直到i=100,自增1变为101,此时条件不成立。执行循环后面的代码。
- 5.执行打印语句,打印最终的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("我会永远执行跑下去~");
}
}
在正常代码中,我们应该避免这种错误。
二、do...while...循环
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学长
原创内容|田老师出品
- 上一篇: Python | for 循环
- 下一篇: 用json写vue前端,更容易让后端接受
猜你喜欢
- 2024-12-03 Python | for 循环
- 2024-12-03 Python的for循环用法介绍
- 2024-12-03 一招教你搞定西门子博图SCL编程语句中FOR循环指令,so easy
- 2024-12-03 Java中如何终止运行中的线程?死循环是如何跳出来的?
- 2024-12-03 【Java基础】Java的循环结构:for循环、while循环、do-while循环
- 2024-12-03 Java基础—解析循环结构
- 2024-12-03 Python编程之第9节(循环控制 for)
- 2024-12-03 js forEach跳出循环
- 2024-12-03 Java基础入门(循环结构)
- 2024-12-03 java基础语法糖之增强for循环
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)