专业编程基础技术教程

网站首页 > 基础教程 正文

12.Java中的 for 循环

ccvgpt 2025-01-02 14:54:50 基础教程 6 ℃

for 循环

在Java中,for循环是一种常用的循环结构,用于重复执行一段代码块,通常在已知循环次数或满足特定条件的情况下使用。下面我会为您详细介绍for循环的语法、用法以及一个实例来帮助理解。

语法:基本的for循环结构

12.Java中的 for 循环

for (初始化语句; 条件表达式; 更新语句) {
    // 循环体,重复执行的代码块
}
  • 初始化语句:在循环开始前执行的语句,一般用于初始化计数器或设置循环的起始条件。
  • 条件表达式:在每次循环迭代前求值,如果结果为true,继续循环;如果为false,退出循环。
  • 更新语句:在每次循环迭代后执行的语句,一般用于更新计数器或改变循环的条件。

示例:

让我们通过一个例子来演示for循环的用法。假设我们要打印出从1到5的数字:

for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}

在这个例子中:

  • 初始化语句:int i = 1; 我们初始化一个名为i的整数变量,将其设置为1,作为我们的计数器。
  • 条件表达式:i <= 5; 在每次循环迭代前,判断i是否小于等于5,如果满足条件,继续循环;如果不满足,退出循环。
  • 更新语句:i++,在每次循环迭代后,将i增加1,以便进行下一次迭代。

循环体中的代码块 System.out.println(i); 将会在每次循环迭代时执行,打印出从1到5的数字。

这就是一个简单的for循环的例子。您可以根据需要调整初始化、条件和更新语句,以及循环体中的代码,实现不同的循环逻辑。


出了 while 循环和 do-while 循环,另一种循环是 for 循环。

看起来像这样:

class Demo {
 public static void main(String[ ] args) {
  for(int x=1; x<5; x++) {
   System.out.println(x);
  }
  //输出:1 2 3 4 
 }
}

for循环有三个组成部分

  • 第一个部分在我们进入循环时运行一次,并初始化变量。
  • 第二个部分是循环的条件。
  • 第三个部分在每次循环运行时都会运行。

注意在循环的各个部分之后有分号 (;)。

在for循环中,你可以使用任何类型的条件和增量语句。

下面的示例仅打印0到10之间的偶数值:

for (int i = 0; i <= 10; i++) {
    if (i % 2 == 0) {
        System.out.println(i);
    }
}
class Demo {
 public static void main(String[ ] args) {
  for(int x=0; x<=10; x+=2) {
   System.out.println(x);
  }
 }
}

希望这可以帮助你理解for循环的使用!

在我们知道需要循环运行的次数时for循环是最好的选择


1.break 语句

记得之前我们在switch语句中使用的break语句吗?它也可以用来终止循环。

示例:

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break;  // 当 i 等于 5 时终止循环
    }
    System.out.println(i);
}

在上述示例中,当i的值等于5时,break语句会终止循环,输出结果为:

0
1
2
3
4

class Demo {
 public static void main(String[ ] args) {
  int x = 1;
  while(x < 10) {
   System.out.println(x);
   if(x == 4) {
    break;
   }
   x++;
  }
  //输出:1 2 3 4
 }
}

当变量 x 的值达到 4 时,这将结束循环。


break 它在for循环中同样适用:

class Demo {
 public static void main(String[ ] args) {
  for(int x=1; x<10; x++) {
   System.out.println(x);
   if(x == 4) {
    break;
   }
  }
 }
}

这里有一个使用break的示例用法:

例如,你正在制作一个计算器,并且需要从用户那里获取数字进行相加,直到用户输入"stop"时停止。

在这种情况下,可以使用break语句来在用户输入等于"stop"时结束循环。

import java.util.Scanner;

public class Calculator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        
        while (true) {
            System.out.print("Enter a number (or 'stop' to exit): ");
            String input = scanner.nextLine();
            if (input.equals("stop")) {
                break;  // 当用户输入为"stop"时终止循环
            }
            int number = Integer.parseInt(input);
            sum += number;
        }
        System.out.println("Sum: " + sum);
        scanner.close();
    }
}

在上述示例中,当用户输入为"stop"时,break语句会结束循环,计算器将给出输入数字的和。


2.continue语句

另一个控制语句是continue,它使得循环跳过当前迭代,直接进入下一次迭代。

示例:

for (int i = 0; i < 5; i++) {
    if (i == 2) {
        continue;  // 当 i 等于 2 时跳过当前迭代
    }
    System.out.println(i);
}

在上述示例中,当i的值等于2时,continue语句会跳过当前迭代,输出结果为:

0
1
3
4
class Demo {
 public static void main(String[ ] args) {
  for(int x=10; x<=40; x+=10) {
   if(x == 30) {
    continue;
   }
   System.out.println(x);
  }
 }
}

上述代码根据continue语句的指示跳过了数值30。


continue的一个示例用法: 一个航空售票系统需要计算所有购票的总费用。3岁以下儿童的机票是免费的。我们可以使用while循环遍历旅客列表,并计算他们机票的总费用。在这种情况下,continue语句可以用来跳过儿童。

import java.util.ArrayList;
import java.util.List;

public class TicketingSystem {
    public static void main(String[] args) {
        List<Passenger> passengerList = new ArrayList<>();
        passengerList.add(new Passenger("John", 28));
        passengerList.add(new Passenger("Sarah", 2));
        passengerList.add(new Passenger("Mike", 36));
    
        double totalCost = 0;
        int passengerCount = 0;
        
        while (passengerCount < passengerList.size()) {
            Passenger passenger = passengerList.get(passengerCount);
        
            if (passenger.getAge() < 3) {
                passengerCount++;
                continue;  // 跳过年龄小于3岁的乘客
            }
            
            totalCost += calculateTicketCost(passenger);
            passengerCount++;
        }
        
        System.out.println("Total cost of tickets: #34; + totalCost);
    }
    
    private static double calculateTicketCost(Passenger passenger) {
        // 根据乘客的特定需求进行票价计算
        return 100.0;  // 假设票价为100美元
    }
}

class Passenger {
    private String name;
    private int age;
    
    public Passenger(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public int getAge() {
        return age;
    }
}

在上述示例中,我们使用了continue语句来跳过年龄小于3岁的乘客。这样,计算总票价时将不计算他们的费用。


学习要点:

很棒的进展!这是一个总结:

  • for循环的语法如下:
for (initialization; condition; update) {
    // code to be executed
}
  • initialization在循环开始前执行,用于初始化变量。
  • condition是一个布尔表达式,决定循环是否继续执行。
  • update在每次循环结束后执行,用于更新循环变量的值。
  • 循环体中的代码将重复执行,直到condition的结果为false
  • break语句可用于提前结束循环。
  • continue语句可用于跳过当前迭代,直接进行下一次迭代。

以上是使用for循环以及breakcontinue语句的一些要点。这些工具将帮助你更有效地控制和处理循环结构中的逻辑。继续努力!

  • break语句用于终止循环。
  • continue语句用于跳过当前迭代,进入下一次迭代。

编程题:

阶乘:使用for循环进行计算,并从数字1开始循环。

一个数N的阶乘等于1 * 2 * 3 * ... * N。 例如,5的阶乘是1 * 2 * 3 * 4 * 5 = 120。

创建一个程序,从输入中获取一个数字,并输出该数字的阶乘。

import java.util.Scanner;

class Demo{
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();
        int factorial = 1;
        for (int i = 1; i <= number; i++) {
            factorial *= i;
         }
      System.out.println(factorial);
        
   }
}

上述程序中,我们使用Scanner类从用户输入获取一个数字。然后,我们使用for循环计算该数字的阶乘,并将结果输出到控制台。

输入一个数字,程序将计算该数字的阶乘并输出结果。


使用for循环计算并输出1到1000的数字之和。

public class SumCalculator {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 1000; i++) {
            sum += i;
        }
        System.out.println("The sum of numbers from 1 to 1000 is: " + sum);
    }
}

在这个程序中,我们使用for循环从1到1000遍历所有数字,并将每个数字累加到总和中。最终,我们将计算得到的总和输出到控制台。

执行该程序,将输出1到1000的数字之和。在这种情况下,输出结果为500500。

最近发表
标签列表