Logo

郎哥编程

while循环结构

2019-12-09 918

while循环结构的一般语法是:

while( 条件判断表达式 )

       语句;

其中,表达式是循环条件,语句为循环体。while语句的语义是:计算条件判断表达式的值,当值为真(非0)时,执行循环体语句,一旦条件为假,就停止执行循环体。如果条件在开始时就为假,则不执行循环体语句直接退出循环。

循环体语句可以是空语句(空语句就是没有执行任何操作的语句,空语句单独占一行,语句内容只有“;”符号)、单条语句或多条语句。如果是多条语句,则要用“{”和“}”把它们括起来。条件可以是任何表达式。

案例1:实现输出从1—10分别乘以10所得的乘法表。

在PbaseUnit10项目unit包下创建LoopSample1类。代码如下:

/** 
* @Title: LoopSample1.java 
* @Package unit 
* @Description: Java基础知识课程案例
* @author 编程训练营 
* @date  
* @version V1.0 
*/ 
 
package unit;
 
/** 
* @ClassName: LoopSample1 
* @Description: 流程控制(while循环结构)案例1
* @author 编程训练营 
* @date  
* 
*/
 
public class LoopSample1 {
 
    /**
     * @Title: main
     * @Description: Java程序入口main方法
     * @param @param args 参数
     *
     * @return void 返回类型 @throws
     */
 
    public static void main(String[] args) {
       // num初始化为1
       int num = 1;
       int result;
       while (num <= 10) {
           result = num * 10;
           System.out.printf(" %d * 10 = %d \n", num, result);
           // 使用自增运算符,修改循环变量
           num++;
       }
 
    }
 
}

程序结构分析

程序功能主要是演示while循环语句的使用。

程序声明了两个int类型的变量num和result,分别用来存储数字和乘积。然后,将num初始化为1,因为打算在while循环中从1开始执行乘法运算,求出1—10的数字与10的乘积,因此将while循环的条件编写为num<=10。这样确保了只要num小于等于10,就执行while循环;而当此条件变为假时,即num的值达到11时,就结束循环。循环体中的第一个语句用num乘以10,将计算结果保存在变量result中。第二个语句输出乘法表,循环体中的最后一个语句将num的值递增1,来修改num的值。此处使用了单目自增运算符++,也可以编写为num=num+1,来替代num++。

程序中的num++非常重要,这条语句通过修改num的值来修改循环条件,直到num的值等于11,循环条件为假时退出循环。也就是说,循环条件中的变量,需要在循环中重新赋值,以逐渐改变循环条件的值,直到循环条件为假;否则循环将永远不会停止,这种循环称为“死循环”或者“无限循环”。

程序执行结果如下图所示:

image.png

案例2:无限循环。

在PbaseUnit10项目unit包下创建LoopSample2类。代码如下:

/** 
* @Title: LoopSample2.java 
* @Package unit 
* @Description: Java基础知识课程案例
* @author 编程训练营 
* @date  
* @version V1.0 
*/ 
 
package unit;
 
/** 
* @ClassName: LoopSample2 
* @Description: 流程控制(while循环结构)案例2
* @author 编程训练营 
* @date  
* 
*/
 
public class LoopSample2 {
 
    /**
     * @Title: main
     * @Description: Java程序入口main方法
     * @param @param args 参数
     *
     * @return void 返回类型
     * @throws
     */
 
    public static void main(String[] args) {
      
       int count = 0;
       while (count < 100) {
           System.out.println("这将没完没了,帮帮我吧!!!");
           System.out.printf("试试Ctrl+F2吧");
       }
    }
 
}

程序结构分析

程序功能主要是演示在while循环语句中,由于缺乏改变条件的语句而导致出现无限循环的问题。

程序中while循环体内没有修改循环变量count的值,导致循环条件一直为真,造成了无限循环。

程序执行结果如下图所示:

image.png

另外,假如编写了以下while循环语句:

while( 1 )

其中,条件仅仅是一个数值常量1,由于在Java语言中,规定所有的非0值都表示真。因此,它实际上相当于while(true),而且这个循环条件没有办法在循环体内修改,这样会导致无限循环。可以使用break语句强行跳出循环,这个语句将在后面介绍。

如果循环条件中包含多个条件表达式的组合,这时需要检查整个条件表达式的值。如果整个条件表达式的值为假,即使其中某个子条件表达式为真,循环也会结束。

案例3:编写一个程序,要求从摄氏度0度到250度,每隔20度为一项,输出一个摄氏温度与华氏温度的对照表,同时要求对照表中的条目不超过10条。

在PbaseUnit10项目unit包下创建LoopSample3类。代码如下:

/** 
* @Title: LoopSample3.java 
* @Package unit 
* @Description: Java基础知识课程案例
* @author 编程训练营 
* @date 
* @version V1.0 
*/ 
 
package unit;
 
/** 
* @ClassName: LoopSample3 
* @Description: 流程控制(while循环结构)案例3 
* @author 编程训练营 
* @date  
* 
*/
 
public class LoopSample3 {
 
    /**
     * @Title: main
     * @Description: Java程序入口main方法
     * @param @param args 参数
     *
     * @return void 返回类型 @throws
     */
 
    public static void main(String[] args) {
       int count = 0;
       int c = 0;
       double f;
       // 输出控制在10条以内
       while (c <= 250 && count < 10) {
           count++;
           System.out.printf("%d:  ", count);
           //计算华氏温度
           f = c * 9 / 5.0 + 32.0;
           System.out.printf("c = %d, F = %7.2f\n", c, f);
           c = c + 20;
       }
 
    }
}

程序结构分析

程序功能主要是演示while循环语句的使用。

程序中的循环将执行10次,虽然温度只显示到180,但是由于对照表中条目已经满10条,即count<10变为假,从而导致循环结束。

程序执行结果如下图所示:

image.png

案例4:编写一个程序,用于从控制台接收字符串输入,并将结果输出到屏幕上,当用户输入“quit”时,程序结束。

在PbaseUnit10项目unit包下创建LoopSample4类。代码如下:

/** 
* @Title: LoopSample4.java 
* @Package unit 
* @Description: Java基础知识课程案例
* @author 编程训练营 
* @date  
* @version V1.0 
*/ 
 
package unit;
 
import java.util.Scanner;
 
/** 
* @ClassName: LoopSample4 
* @Description: 流程控制(while循环结构)案例4
* @author 编程训练营 
* @date 
* 
*/
 
public class LoopSample4 {
 
    /**
     * @Title: main
     * @Description: Java程序入口main方法
     * @param @param args 参数
     *
     * @return void 返回类型 @throws
     */
 
    public static void main(String[] args) {
       String str = "";
       Scanner sc = new Scanner(System.in);
       // 用户输入quit,循环结束
       while (!str.equals("quit")) {
           str = sc.next();
       }
 
    }
 
}

程序结构分析

程序功能主要是演示while循环语句的使用。

程序中循环变量str是通过sc.next()获取用户输入来修改的,用户每次输入字符串相当于为str重新赋值,直到用户输入quit字符串时,循环条件变为假,程序退出循环。

循环结构是程序中一种很重要的结构,其特点是,在给定条件成立时,重复执行某程序段,直到条件不成立为止。给定的条件为循环条件,反复执行的程序段称为循环体,循环条件必须要在循环体中改变,否则可能会出现无限循环的结果。


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
张世聪 2020-02-14 16:43

请问avay语言有没有祥系的解释啊

郎宏林 2020-02-14 22:16

<p>你的问题太广泛了。</p><p>你是对课程的哪部分内容不太理解?尽量说的详细一点,我会给出详细解答。</p>