Java While循环 do-while循环用法

循环语句就是让计算机根据条件做循环计算,在条件满足时继续循环,条件不满足时退出循环。

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循环的基本语法。

时间: 2020-11-10

详解Java中的do...while循环语句的使用方法

对于while语句而言,如果不满足条件,则不能进入循环.但有时候我们需要即使不满足条件,也至少执行一次. do-while循环和while循环相似,不同的是,do-while循环至少会执行一次. do { //代码语句 }while(布尔表达式); do..while循环语句也称为后测试循环语句,它的循环重复执行方式,也是利用一个条件来控制是否要继续重复执行这个语句.与while循环所不同的是,它先执行一次循环语句,然后再去判断是否继续执行.例如,计算1到100之间所有整数的和,也可以使用do.

Java中for、while、do while三种循环语句的区别介绍

本文通过实例讲解给大家介绍Java中for.while.do while三种循环语句的区别,具体详情如下所示: 第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } eg: class Dome_For2{ public static void main(String[] args) { //System.out.println("Hello World!"); //求1-10的偶数的和 int sum = 0; fo

举例讲解Java中do-while语句的使用方法

在学习 do/while 语句之前,先清楚 while 语句是如何工作的.while 语句是先进行条件判断,再执行大括号内的循环体. do/while 语句与 while 语句不同的是,它先执行大括号内的循环体,再判断条件,如果条件不满足,下次不在执行循环体.也就是说,在判断条件之前,就已经执行大括号内的循环体. 示例:计算1+2+3+4......+100的结果. public class control5{ public static void main(String[] args){ in

Java基础入门篇——While循环

循环结构分两大类,一类是当型,一类是直到型. 当型: 当布尔值表达式条件为True时,反复执行某语句,当布尔表达式的值为False时才停止循环,例如:while 与 for循环. 直到型: 先执行某语句,在判断布尔表达式,如果为true,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环,例如do - while循环. 语法结构: while (布尔表达式) { 循环体; } 一.循环结构语句 1.在我们实际生活中经常会把同一件事情重复做好几次.例如:潮汕人喜欢喝茶,只要在喝茶的

Java中使用While语句自增运算遍历数组典型实例

public class BirdArray { public static void main(String args[]){ String[] str = new String[]{"麻雀","老鹰","白鸽","黄雀","百灵鸟","孔雀","鹦鹉","丹顶鹤"}; int index =0; //创建索引变量 System.out.prin

java中switch case语句需要加入break的原因解析

java中switch case语句需要加入break的原因解析            java 中使用switch case语句需要加入break 做了具体的实例分析,及编译源码,在源码中分析应该如何使用,大家可以参考下: 假设我们有如下这样一个switch语句: public static void test(int index) { switch (index) { case 1: System.out.println(1); case 2: System.out.println(2);

java中switch选择语句代码详解

switch结构(开关语句)的语法 switch(表达式 ){ --->类型为int.char case 常量1 :--->case 结构可以有多个 //语句块1 break; --->程序跳出switch结构 case 常量n :--->常量的值不能相同 //语句块n break; default:--->和if结构中的 else作用相同 //语句块 break; } 下面看一段代码示例,有详细的注释,大家可以参考: public class SwitchStu{ /* s

Java中IO流文件读取、写入和复制的实例

//构造文件File类 File f=new File(fileName); //判断是否为目录 f.isDirectory(); //获取目录下的文件名 String[] fileName=f.list(); //获取目录下的文件 File[] files=f.listFiles(); 1.Java怎么读取文件 package com.yyb.file; import java.io.File; import java.io.FileInputStream; import java.io.In

基于Java中对域和静态方法的访问不具有多态性(实例讲解)

1.将方法调用同方法主体关联起来被称为 2.编译期绑定(静态)是在程序编译阶段就确定了引用对象的类型 3.运行期绑定(动态绑定)是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法 4.除了static方法和final方法(private方法属于final方法),其他所有方法都是后期绑定,Java中所有的方法都是通过动态绑定来实现多态 5.访问某个域的行为不具有多态性 package polymorphism; class SuperField { public int fi

Java中使用fileupload组件实现文件上传功能的实例代码

使用fileupload组件的原因: Request对象提供了一个getInputStream()方法,通过这个方法可以读取到客户端提交过来的数据,但是由于用户可能会同时上传多个文件,在servlet中编程解析这些上传数据是一件非常麻烦的工作.为方便开发人员处理文件上传数据,Apache开源组织提供了一个用来处理表单文件上传的一个开源组件(Commons-fileupload),该组件性能优异,并且使用及其简单,可以让开发人员轻松实现web文件上传功能. 使用Commons-fileupload

java中快速创建带初始值的List和Map实例

初始化一个List和Map对象并为期加入值的写法如下: List<String> sList = new ArrayList<String>(); sList.add("str1"); sList.add("str2"); Map<String,String> sMap = new HashMap<String, String>(); sMap.put("k1", "v1");

Java中前台往后台传递多个id参数的实例

1.传字符串的形式,字符串中每个id用 "," 隔开 打印出来如下形式: 前台JS代码 function saveRoleAdd() { var roleNames = $('#roleNames').textbox("getText"); var roleDetail = {}; roleDetail.roleNames = roleNames; roleDetail.roleFunctionCount = 0; roleDetail.roleFunctionLi

java 中使用匿名类直接new接口详解及实例代码

java:使用匿名类直接new接口 java中的匿名类有一个倍儿神奇的用法,见下面代码示例: package contract; public interface ISay { void sayHello(); } 上面是一个简单的接口,下面是如何使用: package jimmy; import contract.ISay; public class Program { public static void main(String[] args) { ISay say = new ISay()

java中的equals()和toString()方法实例详解

java中的equals()和toString()方法 , 这里写个小例子帮助大家学习理解此部分知识. /* 所有对象的父类Object Object中的方法: equals() 对象是否相同的比较方法 toString()对象的字符串表现形式 */ class Person { String name; int age; Person(String name, int age) { this.name = name; this.age = age; } } class ObjectDemo {