目 录CONTENT

文章目录

CSharp(十三) 循环语句

CSharp(十三) 循环语句

C# 中的 循环语句 (Loop Statements)用于重复执行一段代码,主要包括 for 、 while 、 do-while 和 foreach 四种。

for 循环

适用于已知循环次数的场景

基本语法

for (初始化; 条件; 步长)
{
    循环体
}

示例

// 打印 1 到 5
for (int i = 1; i <= 5; i++)
{
    Console.WriteLine(i);
}

// 输出: 1 2 3 4 5

多种写法

// 递减
for (int i = 5; i >= 1; i--)
{
    Console.WriteLine(i);
}

// 跳过某些值
for (int i = 0; i <= 10; i += 2)
{
    Console.WriteLine(i);  // 0, 2, 4, 6, 8, 10
}

// 多个变量
for (int i = 0, j = 10; i < j; i++, j--)
{
    Console.WriteLine($"i={i}, j={j}");
}

while 循环

适用于条件控制,次数不确定的场景

基本用法

while (条件)
{
    循环体
}

示例

int count = 0;

while (count < 5)
{
    Console.WriteLine(count);
    count++;
}

// 用户输入验证
string input = "";
while (input != "exit")
{
    Console.Write("请输入 (exit 退出): ");
    input = Console.ReadLine();
}

do-while 循环

至少执行一次,然后判断条件

基本语法

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

示例

int num;

do
{
    Console.Write("请输入一个正数: ");
    num = int.Parse(Console.ReadLine());
} while (num <= 0);

Console.WriteLine($"你输入了: {num}");

foreach 循环

用于遍历集合或数组,无需索引

基本语法

foreach (变量 变量名 in 集合或数组)
{
    循环体
}

示例

// 遍历数组
int[] numbers = { 1, 2, 3, 4, 5 };
foreach (int num in numbers)
{
    Console.WriteLine(num);
}

// 遍历列表
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
foreach (string name in names)
{
    Console.WriteLine(name);
}

// 遍历字典
Dictionary<int, string> dict = new Dictionary<int, string>
{
    { 1, "One" },
    { 2, "Two" }
};

foreach (var kvp in dict)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}

循环控制语句

语句 作用
break 立即终止,退出整个循环
continue 跳过当前迭代,继续下一次
return 结束方法跳出循环

break

for (int i = 1; i <= 10; i++)
{
    if (i == 5)
    {
        break;  // 遇到 5 就结束循环
    }
    Console.WriteLine(i);  // 输出: 1 2 3 4
}

continue 示例

for (int i = 1; i <= 5; i++)
{
    if (i == 3)
    {
        continue;  // 跳过 3
    }
    Console.WriteLine(i);  // 输出: 1 2 4 5
}

嵌套循环

// 打印 9x9 乘法表
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write($"{j}x{i}={i*j}\t");
    }
    Console.WriteLine();
}

循环对比

循环 适用场景 特点
for 已知次数 初始化、条件、迭代都在一行
while 条件控制 可能一次都不执行
do-while 至少执行一次 先执行后判断
foreach 遍历集合 只读,不能修改元素

完整示例

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 1. 计算 1~100 的和
        int sum = 0;
        for (int i = 1; i <= 100; i++)
        {
            sum += i;
        }
        Console.WriteLine($"1~100 的和: {sum}");  // 5050

        // 2. 找出列表中的第一个偶数
        List<int> numbers = new List<int> { 1, 3, 5, 8, 9, 10 };
        int? firstEven = null;

        foreach (int num in numbers)
        {
            if (num % 2 == 0)
            {
                firstEven = num;
                break;  // 找到就退出
            }
        }
        Console.WriteLine($"第一个偶数: {firstEven}");  // 8

        // 3. 过滤奇数
        Console.Write("偶数: ");
        foreach (int num in numbers)
        {
            if (num % 2 != 0)
            {
                continue;  // 跳过奇数
            }
            Console.Write($"{num} ");  // 8 10
        }
    }
}

总结

  • for 循环适用于已知次数的场景,初始化、条件、迭代都在一行
  • while 循环适用于条件控制,次数不确定的场景
  • do-while 循环至少执行一次,然后判断条件,直到满足条件
  • foreach 循环适用于遍历集合或数组,无需索引
  • break / continue → 控制循环流程
0
博主关闭了当前页面的评论