do-while循环与while循环的不同在于:它先执行循环体中的语句,然后再判断条件是否为真。如果为真则继续循环,如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。同样当有多条语句参加循环时,要用“{”和“}”把它们括起来。
do-while循环的一般语法是:
do{
语句;
}while(条件);注意:在do-while语句的表达式后面必须加分号。
案例1:编写一个猜数游戏,要求猜一个介于1—10之间的数字,根据用户猜测的数与答案进行对比,并给出提示,以便下次猜测能接近标准值,直到猜中为止。
在PbaseUnit10项目unit包下创建GuessSample类。代码如下:
/**
* @Title: GuessSample.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
import java.util.Scanner;
/**
* @ClassName: GuessSample
* @Description: 流程控制(do-while循环结构)案例1
* @author 编程训练营
* @date
*
*/
public class GuessSample {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
//初始化猜数的标准数值
int number = 5;
int guess;
Scanner sc = new Scanner(System.in);
System.out.println("猜一个介于 1 与 10 之间的数");
do
{
System.out.println("请输入您猜测的数");
guess = sc.nextInt();
// 比较guess与number
if( guess > number )
System.out.println("太大");
else if( guess < number )
System.out.println("太小");
}while( guess != number );
System.out.printf("您猜中了:答案为 %d\n",number);
}
}程序结构分析
程序功能主要是演示do-while循环语句的使用。
程序内部设置一个答案存储到变量number中,并声明一个guess变量接收用户猜测的数值。采用do-while结构可以确保用户至少能进行一次猜数操作,在循环体内,提示用户输入要猜的数,用户输入猜测的数值后,利用if-else语句和正确答案进行判断,如果用户猜测的数值大于答案,提示用户数太大;如果用户猜测的数值小于答案,提示用户数太小。while语句后面的表达式( guess != number )用于判断循环条件是否满足,如果用户输入的数值和答案不相等,该表达式返回的结果为真,继续执行循环体,要求用户根据提示继续猜数,否则,表达式返回的结果为假,循环条件不满足,程序不再执行循环体,直接执行循环体后面的语句。
程序执行结果如下图所示:
从上述结果可以看出,输入的数值与答案不相等时,程序给出相应提示,并继续执行循环。当用户输入的数值与答案相等时,程序不再执行循环,并输出猜中的答案。
do-while语句是一种先执行循环体,然后再判断条件的结构,即只有在循环体中的代码执行之后,才会判断循环条件。总的来说,循环结构在开始执行的时候,先执行循环体内的代码,然后通过while里面的条件进行判断,条件成立就继续执行循环,不成立就跳出循环,循环体内代码至少被执行一次。