JAVA程序的控制结构循环语句

JAVA程序的控制结构循环语句

一、导语

当我们在Java中处理重复的任务时,循环语句是非常有用的。循环结构用于反复执行一个语句块,直到满足终止循环的条件时为止。一个循环一般包含3部分内容。
(1)初始化部分:设置初始条件,一般只执行一次。
(2)终止部分:设置终止条件,它应该是一个布尔表达式,每次循环都要求值一次,用以判断是否满足终止条件。
(3)循环体部分:被反复执行的语句块。
Java 语言提供 4种循环结构:“当型”循环结构、“直到型”循环结构、for 循环结构和 for each循环结构。Java支持多种类型的循环语句,包括for循环、while循环和do-while循环。下面我将逐一详细解释这些循环语句。

二、for循环语句

1、作用

for循环通常用于已知循环次数的情况,使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。

2、for语句格式如下:

说明:
语句叫作循环体,可以是单条语句或复合语句。

3、简单的示例如下:

这个示例会打印数字0到9。

在这个例子中,i = 1 是初始化部分,定义了循环变量 i 的初始值;i <= 10 是条件判断部分,只要 i 小于或等于 10 ,循环就会继续;i++ 是迭代更新部分,每次循环结束后 i 的值增加 1 。for 循环的灵活性很高,可以通过改变初始化、条件判断和迭代更新的表达式来满足各种不同的需求。

4在 Java 语言中,使用 for 循环时可能会遇到一些易错点:

  1. 循环变量的作用域

    • 如果在 for 循环的初始化部分定义了循环变量,那么这个变量的作用域通常只在 for 循环内部。但有时可能会误将其在循环外使用,导致编译错误。
  2. 忘记更新循环变量

    • 例如:for(int i = 0; i < 10; i) ,忘记了写 i++ ,这样会导致死循环或者无法达到预期的循环次数。
  3. 边界条件错误

    • 比如要遍历一个数组 arr ,写成了 for(int i = 0; i <= arr.length; i++) ,应该是 i < arr.length ,否则会出现数组越界的错误。
  4. 嵌套 for 循环时的逻辑混乱

    • 当存在多层嵌套的 for 循环时,容易混淆各个循环变量的作用和控制逻辑,导致错误的结果。
  5. 浮点数比较

    • 如果循环条件中涉及到浮点数的比较,由于浮点数的精度问题,可能会导致意外的结果。例如:for(double d = 0.0; d < 1.0; d += 0.1) ,可能不会按照预期执行 10 次,因为浮点数的加法可能存在精度损失。

三、while循环语句

1、作用:

实现“当型”循环结构。while 循环适用于在执行循环体之前无法确定循环次数,而只知道循环继续的条件的情况。

2、while循环格式:

说明:
(1)表达式叫作循环条件表达式,一般为关系表达式或逻辑表达式,必须用“()”括起来。
(2)语句叫作循环体,可以是单条语句或复合语句。

只要条件为true,就会一直执行循环体。

例如,如果要一直读取用户输入,直到用户输入特定的字符结束,可以这样写:

Scanner scanner = new Scanner(System.in);
String input;
while(!(input = scanner.nextLine()).equals("exit")) {
    // 处理输入
    System.out.println("您输入的是:" + input);
}

在这个例子中,只要用户输入的不是 exit ,循环就会一直进行。

3、示例:

int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}

这个示例也会打印数字0到9。

四、do-while循环语句

1、作用:

实现“直到型”循环结构。


2、格式:



表达式叫作循环条件表达式,一般为关系表达式或逻辑表达式,必须用“()”括起来。

语句叫作循环体,可以是单条语句或复合语句。
do…·while 语句以分号结束。


3、执行过程:

先执行循环语句序列,然后计算条件表达式的值,当条件表达式 的值为true时,就重复执行语句循环语句序列;直到条件表达式的值为false才结束循环,如图所示。

do-while 循环与 while 循环类似,但它至少会执行一次循环体。

比如,假设需要用户输入一个大于 0 的数字,直到输入正确为止:

Scanner scanner = new Scanner(System.in);
int number;
do {
    System.out.println("请输入一个大于 0 的数字:");
    number = scanner.nextInt();
} while (number <= 0);

在这个例子中,无论用户第一次输入的数字是否大于 0 ,循环体都会先执行一次,然后再根据条件判断是否继续执行。

package tsa;

public class houdu {

    public static void main(String[] args) {
        // 初始纸张厚度(单位:毫米)  
        double begin = 0.2;  
        // 珠穆朗玛峰的高度(单位:毫米)  
        double Height = 8843800; // 8843.8m 转换为毫米  
        // 所需达到的新高度(单位:毫米)  
        double newHeight = 0.8;  
        // 计算达到珠穆朗玛峰高度需要多少次对折  
        int count = 0;  
        double x = begin;  
        while (x < Height) {  
            x *= 2; // 每次对折厚度加倍  
            count++; // 对折次数加1  
        }  
        System.out.println("对折 " + count + " 次后,纸张的厚度可达珠穆朗玛峰的高度。");  
        // 修改代码以计算达到0.8mm需要多少次对折  
        int newcount = 0;  
        x = begin; // 重置当前厚度为初始厚度  
        while (x < newHeight) {  
            x *= 2; // 每次对折厚度加倍  
            newcount++; // 对折次数加1  
        }  
        System.out.println("对折 " + newcount + " 次后,纸张的厚度可达0.8mm。");  
    }  
    }4、do-while循环语句例子:

说明:
① do--while 语句是先执行sum=sum+i;和i++;语句,后判断表达式i≤n是否成立。若条件成立,则继续执行循环体;若条件不成立,则退出循环。
输出sum
结束
②即使表达式的值一开始就不成立,语句仍要执行一次。如当输入的n为0时,i≤n不成立,但语句sum=sum+i;和i++;也要执行一次。
图3-18求累加和流程图2
③在循环体中应有能不断修改循环条件的语句,最终能使循环结束,否则会形成“死循环”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值