C#第五周第一节课的代码整理

这节课课前首先提问了: $break$ 语句和 $continue$ 语句的区别分别是什么。

$break$ 语句是跳出整个循环,而且是最近的循环。$continue$ 是结束当前的循环。

下面的这份代码在解释outer参数时出现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
namespace outer参数
{
internal class Program
{
public static bool TryFindMinMax(int[] numbers, out int min, out int max)
{
min = max = 0;
if(numbers == null || numbers.Length == 0)
return false;
min = numbers[0];
max = numbers[0];
foreach (int num in numbers)
{
if(num < min) min = num;
if (num > max) max = num;
}
// 此处如果对numbers进行修改,那么主函数中的 data 也会发生变化
// 因为数组是引用类型,传递的是地址
// 上课点到我回答这个问题,答错了www
return true;
}


static void Main(string[] args)
{
int[] data = { 5, 2, 9, 1, 7};
if (TryFindMinMax(data, out int minVal, out int maxVal))
{
Console.WriteLine($"最小值:{minVal}, 最大值{maxVal}");
}

Console.WriteLine("Hello, World!");
}
}
}


这里是对params参数的调用测试,params参数传递的是可变参数数组,允许方法接收可变数量的参数,这样调用方法时可以传入任意数量的同类型参数,而不需要显式地创建数组。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

namespace params参数应用
{
internal class Program
{
public static int Sum(params int[] numbers)
{
int total = 0;
foreach (int num in numbers)
{
total += num;
}
return total;
}
static void Main(string[] args)
{
Console.WriteLine(Sum(1, 2, 3));
Console.WriteLine(Sum(10, 20));
Console.WriteLine(Sum());

//也可以直接传递数组
int[] arr = { 5, 5, 5 };
Console.WriteLine(Sum(arr));
Console.WriteLine("Hello, World!");
}
}
}


下面是课堂上布置的一个练习,用来测试递归函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace 递归测试
{
internal class Program
{
public static int Fun(int n)
{
if (n == 0)
return 1;
if (n == 1)
return 3;
return 2 * Fun(n - 1) + Fun(n - 2);
}
static void Main(string[] args)
{
int x = 8;
Console.WriteLine($"函数得到的值为{Fun(x)}");
Console.WriteLine("Hello, World!");
}
}
}


老师布置了一个任务,就是写一个适用于四位数水仙花数的程序,放在word中,后面提交到他的电脑上。


C#第五周第一节课的代码整理
https://leoeightxuan.github.io/2025/03/17/C-第五周第一节课的代码整理/
作者
Leoeight
发布于
2025年3月17日
许可协议