SZTU: Java新手入门学习日志 23.11.6

7.循环语句

(1)循环的结构

循环是一种控制结构,允许你重复执行一组语句,直到某个条件不再满足。在Java中,有三种主要类型的循环结构:

1. for循环:`for` 循环是用于已知循环次数的情况。它包括初始化、条件检查和迭代部分。通常在需要执行固定次数的循环时使用。

for (初始化; 条件; 迭代) {
    // 在条件为真时执行的代码
}

2. while循环:`while` 循环用于在满足条件的情况下重复执行一组语句。条件检查在循环体执行之前。

while (条件) {
    // 在条件为真时执行的代码
}

3. do-while循环:`do-while` 循环与 `while` 循环类似,但它保证至少执行一次循环体,因为条件检查在循循环体之后。

do {
    // 执行的代码
} while (条件);

(2)注意事项

1. 循环条件:确保循环的条件在某个时刻会变为假,否则你可能会陷入无限循环。确保循环条件在循环体内能够改变以达到终止条件。

2. 循环控制变量:在循环中使用循环控制变量,确保它们在循环体内适当地更新,以便在某个时刻满足循环条件。如果你忘记更新循环控制变量,可能导致无限循环或不正确的结果。

3. 初始化变量:在使用 `for` 循环时,始终在循环之前初始化循环控制变量。这有助于防止变量保留上一次循环的值。

4. 循环嵌套:在循环内部可以包含其他循环,但要小心处理嵌套循环的复杂性。确保理解内部循环和外部循环之间的关系。

5. 循环的目的:在编写循环时,确保明确循环的目的和结束条件。避免不必要的循环和重复。

6. 防止死循环:小心避免编写可能导致死循环(无法终止的循环)的代码。确保循环条件最终会变为假。

7. 循环体内的操作:确保循环体内的操作不会引起错误或不必要的计算。避免在循环内部做过多的工作,以提高效率。

8. 循环计数:在需要知道循环执行了多少次的情况下,使用计数器来跟踪循环的次数。这对于性能分析和调试很有帮助。

9. 循环的退出条件:在 `while` 循环中,确保条件不会在循环体之外的代码执行之后变为假,否则循环可能会提前退出。

10. 循环的性能:如果性能是关键问题,要注意循环的复杂度。不必要的嵌套或重复操作可能会导致性能下降。

11. 关闭资源:如果在循环中使用了资源如文件、数据库连接或网络连接,确保在循环结束后关闭这些资源,以避免资源泄漏。

通过遵守这些注意事项,可以确保循环结构在你的程序中正确工作,避免潜在的问题和错误。循环是编程中非常有用的工具,但也需要谨慎使用以确保代码的正确性和可维护性。

(3)for 循环

`for` 循环是一种常用的循环结构,用于已知循环次数的情况,它由三个部分组成:初始化、条件检查和迭代部分。`for` 循环的结构如下:

for (初始化; 条件; 迭代) {
    // 在条件为真时执行的代码
}

这三个部分的作用如下:

1. 初始化:在循环开始之前执行一次的语句。通常用于初始化循环控制变量(例如,`int i = 0`),这是一个可选部分。

2. 条件:在每次循环迭代之前检查的条件。只有当条件为真时,循环将继续执行。如果条件为假,循环将终止。

3. 迭代:在每次循环迭代结束后执行的语句。通常用于递增或递减循环控制变量(例如,`i++` 或 `i--`),这也是一个可选部分。

`for` 循环的典型用法是执行一组语句一定次数,例如遍历数组中的元素或执行特定的迭代任务。以下是一个示例,演示了 `for` 循环的结构:

for (int i = 0; i < 5; i++) {
    System.out.println("循环执行次数:" + i);
}

在这个示例中,`for` 循环会执行5次,因为初始化部分设置 `i` 为0,条件部分检查 `i` 是否小于5,迭代部分在每次迭代后将 `i` 增加1。

`for` 循环是控制循环次数的理想工具,你可以根据循环的需要来调整初始化、条件和迭代部分,以满足特定的问题和任务。这种循环结构通常用于遍历数组、集合或进行迭代计算。

(4)while循环

`while` 循环是一种常见的循环结构,它用于在满足条件的情况下重复执行一组语句。`while` 循环的结构如下:

while (条件) {
    // 在条件为真时执行的代码
}

`while` 循环的工作原理是,首先检查条件是否为真(`true`),如果条件为真,就执行循环体内的代码,然后再次检查条件。只要条件为真,循环将继续执行。一旦条件变为假,循循环将终止,控制流将移出循环。

以下是一个示例,演示如何使用 `while` 循环来计算从1到5的数字的总和:

int sum = 0;         // 初始化一个变量用于存储总和
int number = 1;      // 初始化一个变量用于计数

while (number <= 5) {  // 条件:如果number小于等于5
    sum += number;    // 将number添加到总和
    number++;         // 增加number的值,以继续下一个数字
}

System.out.println("总和为:" + sum);

在这个示例中,`while` 循环会反复执行,直到 `number` 不再小于等于5。在每次迭代中,将 `number` 的值添加到 `sum` 中,并递增 `number` 的值,以便在下一次迭代中处理下一个数字。一旦 `number` 的值超过5,`while` 循环将结束,然后输出总和。

需要注意的是,如果条件一开始就是假,`while` 循环将不会执行循环体内的代码。因此,在使用 `while` 循环时,要确保条件在某个时刻会变为假,以避免陷入无限循环。同时,要确保在循环体内适当地更新控制条件,以便最终使条件不满足。

(5)do while循环

`do-while` 循环是一种类似于 `while` 循环的循环结构,它确保循环体内的代码至少执行一次,然后在条件检查之后决定是否继续重复执行。`do-while` 循环的结构如下:

do {
    // 在条件为真时执行的代码
} while (条件);

`do-while` 循环首先执行循环体内的代码,然后在条件检查之后决定是否继续执行。只要条件为真,循环将继续执行。一旦条件变为假,循环将终止,控制流将移出循环。

以下是一个示例,演示如何使用 `do-while` 循环来询问用户是否继续执行某个操作,至少执行一次:

import java.util.Scanner;

public class DoWhileExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char choice;

        do {
            System.out.println("执行某个操作...");
            System.out.print("是否继续?(y/n): ");
            choice = scanner.next().charAt(0);
        } while (choice == 'y' || choice == 'Y');

        System.out.println("程序结束。");
    }
}

在这个示例中,`do-while` 循循环首先执行某个操作,然后询问用户是否继续。无论用户的选择是什么,至少会执行一次操作。只有在用户输入 'y' 或 'Y' 时,循环将继续执行。当用户输入其他字符时,循环将结束。

`do-while` 循环非常适合在需要至少执行一次操作的情况下,并且在操作执行后才知道是否需要继续重复执行。同样,要确保条件在某个时刻会变为假,以避免无限循环。

(6)三种循环的区别以及使用情景

1. for 循环:
    结构:`for` 循环具有初始化、条件检查和迭代步骤。这使它适用于已知循环次数的情况。
    适用场景:`for` 循环通常用于执行固定次数的循环,例如遍历数组,执行数学计算等。

for (int i = 0; i < 5; i++) {
    // 循环体
}

2. while 循环:
    结构:`while` 循环只包含条件检查。只要条件为真,循环将执行,条件检查在循环体之前。
    适用场景:`while` 循环用于在不确定循环次数的情况下执行代码,只要条件满足,它就会继续执行。

while (条件) {
    // 循环体
}

3. do-while 循环:
    结构:`do-while` 循环包含条件检查,但条件检查在循循环体之后。这意味着循环体至少执行一次。
    适用场景:`do-while` 循环用于确保循环体至少执行一次,然后根据条件来决定是否继续执行。

do {
    // 循环体
} while (条件);

主要区别和使用场景总结:
- `for` 循环适用于已知循环次数的情况,循环结构较为复杂,需要初始化、条件检查和迭代。
- `while` 循环适用于不确定循环次数的情况,只要条件满足,就会一直执行。
- `do-while` 循环适用于确保至少执行一次循环体的情况,然后根据条件继续执行。

你的选择应该取决于具体的问题和任务,以及循环条件和循环体的需求。不同的循环结构提供了不同的控制方式来满足不同的编程需求

个人实践

import java.util.Scanner;//while 循环

public class demo6 {
    public static void main(String[] args)
   {
        Scanner in = new Scanner(System.in);
        int number = in.nextInt();
        int count = 0;
        while (number > 0) 
        {
            number = number / 10;
            count = count + 1;
            System.out.println("number:" + number + ";count=" + count);
        }
        System.out.println(count);
        in.close();
    }
}


import java.util.Scanner;//do while 循环

public class demo7 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int number = (int) (Math.random() * 100 + 1);
        int a;
        int count = 0;
        do 
          {
            a = in.nextInt();
            count = count + 1;
            if (a > number)
              {
                System.out.println("偏大");
              } 
            else if (a < number)
              {
                System.out.println("偏小");
              }
           } 
        while (a != number);
        System.out.println("恭喜你猜对了,你猜了"+count+"次");
        in.close();
    }
}


import java.util.Scanner;//for循环 

public class demo8 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int count = 0;
        int i;
        for (i = 1; i <=n; i++)
        {
            count += i ;
        }
        System.out.println(count);
        in.close();
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值