C#语言基础速成Day03

“好读书,不求甚解;每有会意,便欣然忘食。”

文章目录

  • 前言
    • 文章有误敬请斧正 不胜感恩!||Day03
  • 一、C#分支语句
      • `if` 语句
      • `else if` 语句
      • `else` 语句
      • `switch` 语句
      • 三元运算符
  • 二、C#循环语句
      • `for` 循环
      • `while` 循环
      • `do-while` 循环
      • `foreach` 循环
      • 使用 `break` 和 `continue`
    • 以上是 C# 中常用的循环语句,通过这些语句可以高效地重复执行代码,处理大量数据和任务。
  • 三、C#数组
      • 一维数组
        • 声明和初始化
        • 访问数组元素
        • 遍历数组
      • 多维数组
        • 声明和初始化
        • 访问多维数组元素
      • 示例:计算数组元素的总和
    • C#数组与C、C++、Java等有什么区别和相同之处?
      • 相同之处
      • 区别
        • 声明和初始化
        • 访问元素和遍历数组
        • 多维数组
        • 内存管理
        • 越界检查
        • 数组的长度
  • 总结


前言

昨天我们学习了C#语言的语法基础部分,今天我们来学习C#语言的分支 循环和数组:
与 C 语言家族中的所有语言一样,分号 (;) 定义语句的结束。 C# 标识符区分大小写。 C# 同样使用大括号({ 和 })、控制语句(例如 if、else 和 switch)以及循环结构(例如 for 和 while)。 C# 还具有适用于任何集合类型的 foreach 语句。

文章有误敬请斧正 不胜感恩!||Day03

以下是本篇文章正文内容

一、C#分支语句

C# 中的分支语句用于根据条件执行不同的代码路径。常见的分支语句包括 ifelse ifelseswitch 和三元运算符。

if 语句

if 语句用于根据条件判断来执行一段代码。

int number = 10;

if (number > 5)
{
    Console.WriteLine("The number is greater than 5.");
}

else if 语句

else if 语句用于在前面的 if 条件不满足时,检查其他条件。

int number = 10;

if (number > 15)
{
    Console.WriteLine("The number is greater than 15.");
}
else if (number > 5)
{
    Console.WriteLine("The number is greater than 5 but less than or equal to 15.");
}

else 语句

else 语句在所有前面的条件都不满足时执行。

int number = 3;

if (number > 15)
{
    Console.WriteLine("The number is greater than 15.");
}
else if (number > 5)
{
    Console.WriteLine("The number is greater than 5 but less than or equal to 15.");
}
else
{
    Console.WriteLine("The number is 5 or less.");
}

switch 语句

switch 语句用于根据一个变量的不同值执行不同的代码块。它是 if-else 语句的一种简化写法。

int dayOfWeek = 3;

switch (dayOfWeek)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    case 3:
        Console.WriteLine("Wednesday");
        break;
    case 4:
        Console.WriteLine("Thursday");
        break;
    case 5:
        Console.WriteLine("Friday");
        break;
    case 6:
        Console.WriteLine("Saturday");
        break;
    case 7:
        Console.WriteLine("Sunday");
        break;
    default:
        Console.WriteLine("Invalid day");
        break;
}

三元运算符

三元运算符用于简写简单的 if-else 语句。

int number = 10;
string result = (number > 5) ? "Greater than 5" : "5 or less";
Console.WriteLine(result);

通过这些分支语句可以根据不同的条件执行不同的代码块,从而实现更复杂的逻辑控制。

二、C#循环语句

C# 中的循环语句用于重复执行一段代码,直到满足特定条件。常见的循环语句包括 for 循环、while 循环、do-while 循环和 foreach 循环。以下是每种循环语句的简要说明和示例:

for 循环

for 循环通常用于需要重复执行已知次数的循环。它包含初始化语句、条件表达式和迭代语句。

for (int i = 0; i < 5; i++)
{
    Console.WriteLine("i = " + i);
}

while 循环

while 循环在每次迭代前都会检查条件表达式,只有条件为真时才会执行循环体。

int i = 0;
while (i < 5)
{
    Console.WriteLine("i = " + i);
    i++;
}

do-while 循环

do-while 循环类似于 while 循环,但它会先执行一次循环体,然后再检查条件表达式。

int i = 0;
do
{
    Console.WriteLine("i = " + i);
    i++;
} while (i < 5);

foreach 循环

foreach 循环用于遍历集合或数组中的每一个元素。

int[] numbers = { 1, 2, 3, 4, 5 };

foreach (int number in numbers)
{
    Console.WriteLine("number = " + number);
}

使用 breakcontinue

在循环中,break 语句用于提前终止循环,而 continue 语句用于跳过当前迭代并开始下一次迭代。

for (int i = 0; i < 10; i++)
{
    if (i == 3)
    {
        continue; // 跳过当前迭代
    }

    if (i == 7)
    {
        break; // 终止循环
    }

    Console.WriteLine("i = " + i);
}

以上是 C# 中常用的循环语句,通过这些语句可以高效地重复执行代码,处理大量数据和任务。

三、C#数组

C#数组与C、C++、Java等类似但是也有不同之处。
C# 中的数组是一种数据结构,用于存储具有相同数据类型的多个元素。数组可以是一维的,也可以是多维的(如二维数组)。C#数组的基本知识可以联系之前学过的主流语言来记忆。

一维数组

声明和初始化

你可以同时声明和初始化数组,也可以先声明后初始化。

// 同时声明和初始化
int[] numbers = new int[5]; // 声明一个包含 5 个整数的数组

// 使用数组初始化器
int[] numbers = { 1, 2, 3, 4, 5 }; // 声明并初始化一个包含 5 个整数的数组

// 先声明后初始化
int[] numbers;
numbers = new int[5];
numbers[0] = 1;
numbers[1] = 2;
// 依次类推
访问数组元素

可以通过索引访问数组元素,索引从 0 开始。

int[] numbers = { 1, 2, 3, 4, 5 };
int firstNumber = numbers[0]; // 1
int secondNumber = numbers[1]; // 2

numbers[2] = 10; // 修改第三个元素的值
Console.WriteLine(numbers[2]); // 10
遍历数组

可以使用 for 循环或 foreach 循环遍历数组。

int[] numbers = { 1, 2, 3, 4, 5 };

// 使用 for 循环
for (int i = 0; i < numbers.Length; i++)
{
    Console.WriteLine(numbers[i]);
}

// 使用 foreach 循环
foreach (int number in numbers)
{
    Console.WriteLine(number);
}

多维数组

声明和初始化

多维数组可以是矩形数组(每行有相同数量的列)或交错数组(即数组的数组)。

// 矩形数组
int[,] matrix = new int[3, 4]; // 声明一个 3 行 4 列的二维数组

// 初始化矩形数组
int[,] matrix = 
{
    { 1, 2, 3, 4 },
    { 5, 6, 7, 8 },
    { 9, 10, 11, 12 }
};

// 交错数组(数组的数组)
int[][] jaggedArray = new int[3][]; // 声明一个包含 3 个一维数组的数组
jaggedArray[0] = new int[4];
jaggedArray[1] = new int[2];
jaggedArray[2] = new int[3];

// 初始化交错数组
int[][] jaggedArray = 
{
    new int[] { 1, 2, 3, 4 },
    new int[] { 5, 6 },
    new int[] { 7, 8, 9 }
};
访问多维数组元素
// 矩形数组
int[,] matrix = 
{
    { 1, 2, 3, 4 },
    { 5, 6, 7, 8 },
    { 9, 10, 11, 12 }
};

int element = matrix[1, 2]; // 7
matrix[2, 3] = 20; // 修改元素

// 交错数组
int[][] jaggedArray = 
{
    new int[] { 1, 2, 3, 4 },
    new int[] { 5, 6 },
    new int[] { 7, 8, 9 }
};

int element = jaggedArray[1][1]; // 6
jaggedArray[2][0] = 10; // 修改元素

示例:计算数组元素的总和

int[] numbers = { 1, 2, 3, 4, 5 };
int sum = 0;

foreach (int number in numbers)
{
    sum += number;
}

Console.WriteLine("Sum: " + sum); // 输出 Sum: 15

通过这些示例和解释,你可以看到 C# 数组如何声明、初始化、访问和操作。数组是处理多个相同类型数据的基本工具,在许多编程任务中都非常有用。

C#数组与C、C++、Java等有什么区别和相同之处?

C#、C、C++ 和 Java 中的数组有一些相同之处,也有一些关键的区别。以下是对它们的比较:

相同之处

  1. 基本概念:所有这些语言中的数组都是用于存储相同类型元素的集合,并且可以通过索引访问。
  2. 索引起始点:数组的索引在所有这些语言中都是从 0 开始的。
  3. 固定大小:在所有这些语言中,数组的大小在创建时确定并且不可更改。

区别

声明和初始化
  • C

    int numbers[5]; // 声明一个包含 5 个整数的数组
    int numbers[] = {1, 2, 3, 4, 5}; // 声明并初始化
    
  • C++

    int numbers[5]; // 声明一个包含 5 个整数的数组
    int numbers[] = {1, 2, 3, 4, 5}; // 声明并初始化
    
  • Java

    int[] numbers = new int[5]; // 声明一个包含 5 个整数的数组
    int[] numbers = {1, 2, 3, 4, 5}; // 声明并初始化
    
  • C#

    int[] numbers = new int[5]; // 声明一个包含 5 个整数的数组
    int[] numbers = {1, 2, 3, 4, 5}; // 声明并初始化
    
访问元素和遍历数组
  • C

    for (int i = 0; i < 5; i++)
    {
        printf("%d\n", numbers[i]);
    }
    
  • C++

    for (int i = 0; i < 5; i++)
    {
        std::cout << numbers[i] << std::endl;
    }
    
  • Java

    for (int i = 0; i < numbers.length; i++)
    {
        System.out.println(numbers[i]);
    }
    
    // 或使用增强 for 循环
    for (int number : numbers)
    {
        System.out.println(number);
    }
    
  • C#

    for (int i = 0; i < numbers.Length; i++)
    {
        Console.WriteLine(numbers[i]);
    }
    
    // 或使用 foreach 循环
    foreach (int number in numbers)
    {
        Console.WriteLine(number);
    }
    
多维数组
  • C

    int matrix[3][4]; // 声明一个 3 行 4 列的二维数组
    
  • C++

    int matrix[3][4]; // 声明一个 3 行 4 列的二维数组
    
  • Java

    int[][] matrix = new int[3][4]; // 声明一个 3 行 4 列的二维数组
    
  • C#

    int[,] matrix = new int[3, 4]; // 声明一个 3 行 4 列的二维数组
    
内存管理
  • C 和 C++:数组可以分配在栈或堆上。动态数组需要使用 mallocnew 分配,使用 freedelete 释放。

    // C 中的动态数组
    int* numbers = (int*)malloc(5 * sizeof(int));
    free(numbers);
    
    // C++ 中的动态数组
    int* numbers = new int[5];
    delete[] numbers;
    
  • Java 和 C#:数组是对象,分配在堆上,由垃圾回收器自动管理内存。

越界检查
  • C 和 C++:没有内置的数组越界检查,可能会导致未定义行为。
  • Java 和 C#:自动进行数组越界检查,如果访问越界会抛出 ArrayIndexOutOfBoundsException(Java)或 IndexOutOfRangeException(C#)。
数组的长度
  • C 和 C++:没有内置的方法来获取数组长度,需要手动跟踪或计算。

    int length = sizeof(numbers) / sizeof(numbers[0]);
    
  • Java 和 C#:有内置的属性来获取数组长度。

    int length = numbers.length;
    
    int length = numbers.Length;
    

通过以上比较,可以看到虽然 C#、C、C++ 和 Java 中的数组有许多相同的基本特性,但在声明、初始化、内存管理和边界检查等方面也存在显著差异。这些差异主要反映了这些语言设计上的不同理念和目标。

总结

以上就是今天所学内容。

在学习 C# 语言的分支、循环和数组后,我们了解到:分支语句(如 ifelse ifelseswitch 和三元运算符)用于根据条件执行不同的代码路径;循环语句(如 forwhiledo-whileforeach)用于重复执行代码块;

数组用于存储和操作相同类型的数据,可以是一维或多维。

与 C、C++ 和 Java 类似但在声明、初始化、内存管理和边界检查上有所不同。
这些语言特性使得 C# 在处理复杂逻辑和数据操作时更加高效和灵活。

  • 23
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

blaizeer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值