Java While循环 do-while循环用法
作者:唐僧洗头要焗油 发布时间:2021-06-12 17:46:54
循环语句就是让计算机根据条件做循环计算,在条件满足时继续循环,条件不满足时退出循环。
Java提供了while条件循环。它的基本用法是:
while (条件表达式) {
循环语句
}
// 继续执行后续代码
while循环在每次循环开始前,先会判断条件是否成立。如果计算结果为true,就把循环体内的语句执行一遍,如果计算结果为false,那就直接跳到while循环的末尾,继续往下执行。
do while循环的基本结构
do{
//循环体
}while(条件);
与while不同的是,do while先不进行判断,直接先将循环体中的代码执行一遍,然后根据while中的条件的返回值判断,如果符合条件,则再一次运行循环体,如果不符合,则执行do while外面的代码
注意:不论是do while还是while循环,他们的本质都是相同的,符合条件则执行循环体,不符合则执行其他代码,但是,while后面的小括号中的是true的时候,才会循环。
举个例子,用while循环来计算1到100的累加。
public class Main {
public static void main(String[] args) {
int sum = 0; // 累加的和,初始化为0
int n = 1;
while (n <= 100) { // 循环条件是n <= 100
sum = sum + n; // 把n累加到sum中
n ++; // n自身加1
}
System.out.println(sum); // 5050
}
}
执行结果:
5050
值得注意的是while循环是先判断循环条件,再循环,因此,有可能一次循环都不做。如果循环条件永远满足,那这个循环就变成了死循环。死循环将导致100%的CPU占用,用户会感觉电脑运行缓慢,所以要避免编写死循环代码。
如果循环条件的逻辑写得有问题,也会造成意料之外的结果。
下面举个例子:
public class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1;
while (n > 0) {
sum = sum + n;
n ++;
}
System.out.println(n); // -2147483648
System.out.println(sum);
}
}
执行结果:
-2147483648
-1073741824
表面上看,上面的while循环是一个死循环,但是,Java的int类型有最大值,达到最大值后,再加1会变成负数,结果,就会退出while循环。
小提示
while循环先判断循环条件是否满足,再执行循环语句;
while循环可能一次都不执行;
编写循环时要注意循环条件,并避免程序进入死循环。
do-while循环
前面一篇介绍了while循环语句,这里介绍do-while循环。do-while和while唯一的区别就是,do-while是先做循环,然后去判断,而while循环是先判断,再去循环。说得有点绕口,在同一个例子去实现用while和do-while实现从1到100的求和。
相关代码如下:
package lessons;
public class MyClass {
public static void main(String[] args) {
int a= 1;
int sum = 0;
while(a <= 100){
sum += a;
a++;
}
System.out.println(sum);
int x = 1;
int sum1 = 0;
do{
sum1 += x;
x++;
}while(x <= 100);
System.out.println(sum1);
}
}
运行结果,发现两个循环结果都是5050.自己好好去理解下先循环再判断,这是do-while循环的基本语法。
来源:https://blog.csdn.net/qq_36770832/article/details/108343431


猜你喜欢
- 众所周知,java提供了很多字符串截取的方式。下面就来看看大致有几种。1.split()+正则表达式来进行截取。 将正则传入split()。
- 问题发现今天发生了一件事,令我非常郁闷,就是我在使用一个SDK时,当我调用他的方法时,提示我方法中的参数var1, var2如下:// 方法
- 目录字符串、时间、金额转换日期1日期2有限状态自动机-敏感词搜索加解密文件雪花算法-ID生成网络相关URL相关大家在系统研发过程中,总是会遇
- 1,什么是Eureka,什么是服务注册与发现 Spring Boot作为目前最火爆的web框架。那么它与Eureka又有什么关联呢?Eure
- Contact联系人对Mms来说是十分重要的,因为每一个对话的收信人都是一个联系人,新建信息时可以输入联系人的任何信息,比如号码或名字,Mm
- service是业务层 action层即作为控制器DAO (Data Access Object) 数据访问1.JAVA中Action层,
- package com.smart.frame.task.autoTask;import java.util.Collection;impo
- Map集合Map集合存储的是键值对Map集合的实现类:HashTable、LinkedHashMap、HashMap、TreeMapHash
- SpringBoot 动态修改Scheduled场景:可配置的 Scheduled 执行时间,正常的 Scheduled 是在项目启动的时候
- response.setHeader设置下载文件名无效response.setContentType("application/o
- 一.以springboot为例,建立代码1.IExecCommandServer:public interface IExecCommand
- 这篇文章主要介绍了Spring整合MyBatis图示过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 像ipconfig /all 这样的CMD命令想必大家都知道,但是很多童鞋可能不知道怎么写这样的控制台带参数的程序,其实很简单,我们先看建立
- Java 目前已经出到13的版本,但是国内大部分公司应该都停留在 Java 8 的版本(不敢承担升级带来的风险)。在Java8中给我们带来了
- 问题现象今天在做一个需求:将存入数据库中的数据读到后解析成list遍历分析数据格式:"[1677660600000, 167766
- java @Value("${}")获取不到配置文件中值1、property.yml配置spring: ma
- 由于一个线程的程序,如果调用一个功能是阻塞的,那么就会影响到界面的更新,导致使用人员操作不便。所以往往会引入双线程的工作的方式,主线程负责更
- 在开发过程中.数组和集合的处理是最让我们担心.一般会用for or foreach 来处理一些操作.这里介绍一些常用的集合跟数组的操作函数.
- 常用依赖 //1.直接依赖第三方开源库,一般是托管在 jitpack 或者 jcenter implementation 'com.
- Android 处理OnItemClickListener时关于焦点颜色的设置问题