您的位置:首页 > 新闻 > 资讯 > 四川省公共资源交易中心_沛县做网站_今日国际重大新闻_网络运营怎么做

四川省公共资源交易中心_沛县做网站_今日国际重大新闻_网络运营怎么做

2025/2/24 3:39:40 来源:https://blog.csdn.net/MY_future_/article/details/145795833  浏览:    关键词:四川省公共资源交易中心_沛县做网站_今日国际重大新闻_网络运营怎么做
四川省公共资源交易中心_沛县做网站_今日国际重大新闻_网络运营怎么做

1.为什么需要流程控制

        有时候,需要根据程序运行时的具体环境,有选择地执行不同代码段;而有时候,则需要反复执行同一段代码。这时候,流程控制中的分支和循环就发挥了关键作用。分支能让代码根据条件判断结果来决定执行路径,循环则负责重复执行特定代码,提高代码的复用性和效率


2.布尔运算符:条件判断的基石

        在进行条件判断时,布尔运算符是不可或缺的工具。C# 提供了丰富的布尔运算符,包括比较运算符(如==!=<><=>=)、逻辑运算符!&|^&&||)以及布尔赋值运算符&=|=^= 。这些运算符用于比较值、组合条件以及对布尔值进行操作,帮助我们构建复杂的条件表达式。例如:

int num1 = 10;
int num2 = 20;
bool result1 = num1 < num2; // true
bool result2 = num1 != num2 && num1 > 5; // true

        需要注意的是,逻辑与(&&)和逻辑或(||)存在短路特性&&运算符在第一个操作数为false时,不会计算第二个操作数;||运算符在第一个操作数为true时,不会计算第二个操作数。这一特性在优化代码性能和避免不必要的计算时非常有用。


3.分支结构:灵活决策的实现

(1)if 语句

if语句是最基本的分支结构,它根据条件表达式的结果来决定是否执行特定代码块。语法如下:

if (condition)
{// 当condition为true时执行的代码
}

例如,判断一个数是否为正数:

int number = 15;
if (number > 0)
{Console.WriteLine($"{number}是正数");
}

(2)if - else 语句

if - else语句在if的基础上增加了条件不满足时的执行路径

if (condition)
{// 当condition为true时执行的代码
}
else
{// 当condition为false时执行的代码
}

比如,判断一个数的奇偶性:

int num = 7;
if (num % 2 == 0)
{Console.WriteLine($"{num}是偶数");
}
else
{Console.WriteLine($"{num}是奇数");
}

(3)if - else if - else 语句

这种结构允许根据多个条件进行多分支判断

if (condition1)
{// 当condition1为true时执行的代码
}
else if (condition2)
{// 当condition1为false且condition2为true时执行的代码
}
else
{// 当所有条件都为false时执行的代码
}

以成绩等级评定为例:

int score = 75;
if (score >= 90)
{Console.WriteLine("成绩等级为优");
}
else if (score >= 80)
{Console.WriteLine("成绩等级为良");
}
else if (score >= 60)
{Console.WriteLine("成绩等级为中");
}
else
{Console.WriteLine("成绩等级为差");
}

(4)三元运算符

三元运算符(? :是一种简洁的条件表达式,它可以根据条件返回两个值中的一个。

result = condition? valueIfTrue : valueIfFalse;

例如,判断一个数是否大于 10 并返回相应的字符串:

int num = 12;
string result = num > 10? "大于10" : "小于等于10";
Console.WriteLine(result);

(5)switch 语句

switch语句用于将一个变量或表达式与多个常量值进行比较,并根据匹配结果执行相应的代码块。

switch (expression)
{case value1:// 当expression等于value1时执行的代码break;case value2:// 当expression等于value2时执行的代码break;default:// 当expression与所有case值都不匹配时执行的代码break;
}

假设我们有一个表示季节的整数变量,用switch语句输出对应的季节名称:

int season = 2;
switch (season)
{case 1:Console.WriteLine("春季");break;case 2:Console.WriteLine("夏季");break;case 3:Console.WriteLine("秋季");break;case 4:Console.WriteLine("冬季");break;default:Console.WriteLine("无效的季节值");break;
}

switch语句还有一些特殊用法,比如与goto结合,以及合并多个case来处理相同的逻辑

switch (number)
{case 1:Console.WriteLine("数字是1");goto case 2;case 2:Console.WriteLine("数字是2或者从1跳转过来");break;case 3:case 4:Console.WriteLine("数字是3或4");break;
}

4.循环结构:重复执行的利器

(1)for 循环

for循环适用于已知循环次数的场景,它的语法结构包含初始化循环条件每次循环后的操作

for (initialization; condition; operation)
{// 循环体代码
}

例如,输出 1 到 10 的整数:

for (int i = 1; i <= 10; i++)
{Console.WriteLine(i);
}

(2)while 循环

while循环在条件表达式为true时,持续执行循环体代码

while (condition)
{// 循环体代码
}

比如,计算 1 到 100 的累加和:

int sum = 0;
int num = 1;
while (num <= 100)
{sum += num;num++;
}
Console.WriteLine($"1到100的累加和为:{sum}");

(3)do - while 循环

do - while循环与while循环类似,但它会先执行一次循环体,再判断条件

do
{// 循环体代码
} while (condition);

do - while循环实现输入验证,确保用户输入的是正数:

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

(4)循环中断语句

在循环过程中,我们常常需要根据特定条件提前终止循环或跳过某次循环。C# 提供了breakcontinuegotoreturn等语句来实现这些功能

  • break语句用于立即终止当前循环,跳出循环体。例如,在遍历数组时,找到目标元素后停止遍历:
int[] numbers = { 1, 3, 5, 7, 9 };
int target = 5;
for (int i = 0; i < numbers.Length; i++)
{if (numbers[i] == target){Console.WriteLine($"找到目标元素,索引为:{i}");break;}
}

  • continue语句跳过当前循环的剩余部分,直接开始下一次循环。比如,只输出 1 到 10 中的偶数:
for (int i = 1; i <= 10; i++)
{if (i % 2 != 0){continue;}Console.WriteLine(i);
}

  • goto语句可以跳转到指定的标签位置,但过度使用会使代码结构混乱,应谨慎使用。例如:
int count = 0;
start:
if (count < 5)
{Console.WriteLine(count);count++;goto start;
}

   return语句用于跳出当前函数,同时也会终止包含它的循环。在方法中,根据特定条件提前返回结果:

int CalculateSum(int[] numbers)
{int sum = 0;foreach (int num in numbers){if (num < 0){return -1; // 遇到负数提前返回}sum += num;}return sum;
}

5.练习

(1). 输入 5 个整数,求出其中的最大值和最小值并显示

using System;class Program
{static void Main(){int max = int.MinValue;int min = int.MaxValue;Console.WriteLine("请输入 5 个整数:");for (int i = 0; i < 5; i++){Console.Write($"请输入第 {i + 1} 个整数:");int num = int.Parse(Console.ReadLine());if (num > max){max = num;}if (num < min){min = num;}}Console.WriteLine($"最大值是:{max}");Console.WriteLine($"最小值是:{min}");}
}

(2). 让用户输入三个整数,前两个是操作数,第三个是 0 - 4 之间的数,0 代表加法,1 代表减法,2 代表乘法,3 代表除法,4 代表取模运算,计算结果

using System;class Program
{static void Main(){Console.Write("请输入第一个整数:");int num1 = int.Parse(Console.ReadLine());Console.Write("请输入第二个整数:");int num2 = int.Parse(Console.ReadLine());Console.Write("请输入 0 - 4 之间的一个数(0:加法,1:减法,2:乘法,3:除法,4:取模):");int operation = int.Parse(Console.ReadLine());double result = 0;switch (operation){case 0:result = num1 + num2;break;case 1:result = num1 - num2;break;case 2:result = num1 * num2;break;case 3:if (num2 != 0){result = (double)num1 / num2;}else{Console.WriteLine("除数不能为 0");return;}break;case 4:if (num2 != 0){result = num1 % num2;}else{Console.WriteLine("除数不能为 0");return;}break;default:Console.WriteLine("输入的操作数无效");return;}Console.WriteLine($"计算结果是:{result}");}
}

(3). 求出 1 - 1500 之间的所有能被 9 整除的数,并计算和输出每 6 个的和

using System;class Program
{static void Main(){int count = 0;int sum = 0;for (int i = 1; i <= 1500; i++){if (i % 9 == 0){sum += i;count++;if (count % 6 == 0){Console.WriteLine($"每 6 个能被 9 整除的数的和是:{sum}");sum = 0;}}}}
}

(4). 编写一个控制台程序,分别输出 1 - 150 之间的平方、立方

using System;class Program
{static void Main(){for (int i = 1; i <= 150; i++){int square = i * i;int cube = i * i * i;Console.WriteLine($"数字 {i} 的平方是:{square},立方是:{cube}");}}
}

(5). 青蛙繁殖问题。设有一对新生的青蛙,从第四个月开始它们每个月都生一对青蛙,新生的青蛙从第四个月开始又每个月生一对青蛙。按此规律,并假定青蛙没有死亡,25 个月后共有多少对青蛙?

using System;class Program
{static void Main(){int month = 25;int first = 1;int second = 1;int third = 1;int current = 0;for (int i = 4; i <= month; i++){current = first + third;first = second;second = third;third = current;}Console.WriteLine($"25 个月后共有 {current} 对青蛙");}
}

(6). 编程输出 1 - 150 中能被 4 整除但不能被 7 整除的数,并统计有多少个这样的数

using System;class Program
{static void Main(){int count = 0;for (int i = 1; i <= 150; i++){if (i % 4 == 0 && i % 7 != 0){Console.WriteLine(i);count++;}}Console.WriteLine($"共有 {count} 个这样的数");}
}

(7). 编程输出 1500 以内的所有素数

using System;class Program
{static void Main(){for (int num = 2; num <= 1500; num++){bool isPrime = true;for (int i = 2; i < num; i++){if (num % i == 0){isPrime = false;break;}}if (isPrime){Console.WriteLine(num);}}}
}

(8). 编程输出十一乘法表

using System;class Program
{static void Main(){for (int i = 1; i <= 11; i++){for (int j = 1; j <= i; j++){Console.Write($"{j} x {i} = {i * j}\t");}Console.WriteLine();}}
}

(9). 编写一个掷骰子 150 次的程序,并打印出各种点数的出现次数

using System;class Program
{static void Main(){int count1 = 0;int count2 = 0;int count3 = 0;int count4 = 0;int count5 = 0;int count6 = 0;Random random = new Random();for (int i = 0; i < 150; i++){int dice = random.Next(1, 7);switch (dice){case 1:count1++;break;case 2:count2++;break;case 3:count3++;break;case 4:count4++;break;case 5:count5++;break;case 6:count6++;break;}}Console.WriteLine($"点数 1 出现的次数:{count1}");Console.WriteLine($"点数 2 出现的次数:{count2}");Console.WriteLine($"点数 3 出现的次数:{count3}");Console.WriteLine($"点数 4 出现的次数:{count4}");Console.WriteLine($"点数 5 出现的次数:{count5}");Console.WriteLine($"点数 6 出现的次数:{count6}");}
}

(10). 一个控制台应用程序,输出 1 - 7 的平方值,分别用 for、while、do - while 语句实现

using System;class Program
{static void Main(){// for 语句实现Console.WriteLine("使用 for 语句:");for (int i = 1; i <= 7; i++){Console.WriteLine($"数字 {i} 的平方是:{i * i}");}// while 语句实现Console.WriteLine("使用 while 语句:");int j = 1;while (j <= 7){Console.WriteLine($"数字 {j} 的平方是:{j * j}");j++;}// do - while 语句实现Console.WriteLine("使用 do - while 语句:");int k = 1;do{Console.WriteLine($"数字 {k} 的平方是:{k * k}");k++;} while (k <= 7);}
}

(11). 一个控制台应用程序,要求用户输入 7 个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入

using System;class Program
{static void Main(){bool validInput = false;while (!validInput){Console.WriteLine("请输入 7 个大写字母:");string input = Console.ReadLine();if (input.Length == 7){validInput = true;for (int i = 0; i < 7; i++){if (!char.IsUpper(input[i])){validInput = false;break;}}}if (!validInput){Console.WriteLine("输入无效,请输入 7 个大写字母。");}}Console.WriteLine("输入有效。");}
}

(12). 一个控制台应用程序,要求完成下列功能

  1. 接收一个整数 n。
  2. 如果接收的值 n 为正数,输出 1 - n 间的全部整数。
  3. 如果接收的值 n 为负值,用 break 退出循环(这里假设用循环接收输入)。
  4. 如果 n 为 0 的话,继续接收下一个整数。
using System;class Program
{static void Main(){while (true){Console.Write("请输入一个整数:");int n = int.Parse(Console.ReadLine());if (n > 0){for (int i = 1; i <= n; i++){Console.WriteLine(i);}}else if (n < 0){break;}}}
}

(13). 一个控制台应用程序,求 2000 之内的所有 “完数”

using System;class Program
{static void Main(){for (int num = 2; num <= 2000; num++){int sum = 0;for (int i = 1; i < num; i++){if (num % i == 0){sum += i;}}if (sum == num){Console.WriteLine(num);}}}
}

6.总结

        通过本文对 C# 流程控制的详细讲解,相信大家对分支和循环结构有了更深入的理解。从基本的条件判断到复杂的多分支决策,再到灵活的循环控制,这些知识是编写高效、健壮 C# 程序的基础。希望大家在实际编程中不断练习和运用,逐渐掌握流程控制的技巧,提升自己的编程能力。以上就是本期关于 C# 流程控制的全部内容,如果你在学习过程中有任何疑问或心得,欢迎在评论区留言分享

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com