服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#编程自学之流程控制语句

C#编程自学之流程控制语句

2021-10-29 12:26C#教程网 C#

本文主要介绍流程控制语句,主要包括条件控制语句和循环控制语句的使用。读者学习本文后,应该熟练掌握C#控制语句的主要用途和使用方法,了解这些控制语句的区别。

在前面的文章中我们不难看出来,我们程序的执行顺序是从上到下顺序执行的,那么有时候我们需要程序在某个条件成立时,执行指定的代码片段,那么怎么样来控制这样流程呢?这个就是我们今天这篇文章所需要讨论的。那么开始吧!
一、if esle 语句
1.关系型运算符
说到分支语句必定会牵扯到条件,例如当满足一个条件的时候去执行指定的代码段,那么如何构建条件?这个时候我们就需要先了解一下运算符中的《关系型运算符》!请看下表:

C#编程自学之流程控制语句

看完表格后我们来介绍下什么是关系型运算符,关系型运算符就是对我们程序中的数据进行比较,当满足条件就返回一个为真的bool类型变量。注意:c#中的关系运算符只能返回true与false。
那么我们在来看看关系运算符之间的优先级,假如我们将关系运算符分为两个级别的优先级为:一级(高优先级)二级(低优先级)
那么一级的有: < , > , <= , >=
二级的有:  == , != 
由此看来当多个关系运算符出现在表达式中时,程序会根据优先级级别来确定先比较哪一部分!
请看如下程序:

?
1
2
3
4
if (10 > 5 == 10 < 5) { }
//程序判断步骤: 因为运算符 > , < 的优先级高于 ==
//那么程序解析如下  if([10大于5返回true]->true == [10不小于5返回false]->false)
//那么下一步解析如下 if(true == false) [因为true 不等于false ]所以最终表达式返回false条件不成立

2.if、else
了解完关系运算符后我们来看看c#控制程序流程的语句if、else,if、else的意思就是如果、那么。从字面意思我们可以看出来这组语句可以用来帮助我们判断程序中的逻辑。例如 如果 a > b 的话,在屏幕打印a+ b的和,那么(那么的意思就是a > b不成立的时候)。我们还是来看个例子吧!
假如:需要设计一个程序来让用户输入两个数字平且计算两个数字的和,当和大于10的时候在屏幕中打印“a + b的和大于10” 否则我们打印 “a + b 的和小于10”!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
console.write("请输入a的值:");
int a = convert.toint32(console.readline());
console.write("请输入b的值:");
int b = convert.toint32(console.readline());
   
//判断a + b 的和是否大于10
if (a + b > 10) //注意算数运算符的优先级高于关系运算符所以表达式先计算a+b 后判断是否大于10
{
  //如果大于10执行这里
  console.writeline("a + b 的和大于10");
}
else
{
  //否则执行这里
  console.writeline("a + b 的和小于10");
}

好的!那么我们来分析一下,前面的代码就不说了相信大家都可以看懂,我们就从第7行开始看,这时假设用户已经数据了数据a为6 、b为5!
第7行if语句的表达式中根据运算符优先级先计算a + b的和为11.
紧接着判断11是否大于10 (11 > 10),11明显大于10 所以表示返回true当表达式返回true就执行if下面{}中的代码段, 所以程序会输出 “a + b 的和大于10”
如果用户数输入a = 5 、b=3 那么和不大于10 程序自然而然也就输出“a + b 的和小于10”
以下是两种情况的输出结果:

C#编程自学之流程控制语句

3.条件运算符
看完了c#基本的分支语句之后我们可能会想到,当我一次判断中出现多个条件时应该如何处理?例如条件为:当姓名为王波洋并且年龄为24时,这种条件我们应该如何表示?这时条件运算符又闪亮登场啦。当有了条件运算符时构建这种多条件的表达式就轻松了许多,那么我们来看看c#都有哪些条件运算符:

C#编程自学之流程控制语句

还是用一个例子带过,需求如下:用户输入年龄,当年龄在20 30中间显示“你很年轻”, 否则就显示 “你的年龄不满足我的要求”,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
console.write("请输入您的年龄:");
int age = convert.toint32(console.readline());
  
//判断年龄是否大于20 在判断年龄是否小于30
//随后在进行逻辑运算
if (age > 20 && age < 30) //注意关系运算符的优先级高于逻辑运算符所以表达式先判断age >20 与 age < 30 后进行逻辑与
{
   //如果年龄大于20小于30执行这里
   console.writeline("你很年轻");
}
else
{
   //否则执行这里
   console.writeline("你的年龄不满足我的要求");
}

继续分析:从第6行开始看:
1. 关系运算符优先级高于逻辑运算符。那么先判断 age 是否大于 20 和 age 是否小于 30,假设此时age = 25,那么(age > 20) == true 、(age < 30) == true
2.此时表示为if(true && true),根据上面表格我们可以知道,逻辑与在两边都为true时返回true所以表达式成立
3.输出结果 "你很年轻" 当age = 35时输出结果是"你的年龄不满足我的要求"

C#编程自学之流程控制语句

二、switch case语句
了解万if、esle后我们来看c#提供的另一种分支语句switch、case,它是一种将条件表达式预定义好的一种分支结构。例如设计一个点餐程序,我们的菜单有 1.汉堡 2.牛排 3.披萨 ,我们需要当用户输入三个食品的序号来为可以提供食物。那么使用switch、case分支语句的代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
console.writeline("/**********************************/");
console.writeline("本店提供:1.汉堡 2.牛排 3.披萨");
console.write("选择需要的食物:");
string num = console.readline();
   
//判断num
switch (num)
{
  case "1"://当输入的为1时执行这里case与下面最近的break之间的代码
    console.writeline("您点的汉堡请慢用");
    break;
  case "2"://当输入的为2时执行这里case与下面最近的break之间的代码
     console.writeline("您点的牛排请慢用");
     break;
  case "3"://当输入的为3时执行这里case与下面最近的break之间的代码
     console.writeline("您点的披萨请慢用");
     break;
  default: //当输入的值case中未声明时执行这里default与下面最近的break之间的代码
     console.writeline("本店无您所需的食品");
     break;
}

那么我们继续来分析一下,搜先来看switch 与 case的语法,当switch后面括号中的值与case中定义的值一致时执行对应case中的代码到碰见break为止。default的意思是当switch后面括号中的值未能与case中的值匹配上时,执行default中的代码到碰见break为止。那么由此分析得出:
1.当用户输入1时代表选择的汉堡,switch(1)
2.在case中寻找是否有1,寻找到case "1" 执行case "1"中的代码到碰见break为止
3.打印"您点的汉堡请慢用" 当用户输入的值在case中为定义时例如5,那么程序必然输出"本店无您所需食品"。
运行结果如下:

C#编程自学之流程控制语句

本章介绍了c#的流程控制语句,学习重点在对条件判断语句、循环语句、循环控制语句的理解和掌握,并熟悉使用对象控制语句。本章的难点在于对这些流程控制语句的灵活应用和某些流程控制语句间区别的理解。

延伸 · 阅读

精彩推荐
  • C#聊一聊C#接口问题 新手速来围观

    聊一聊C#接口问题 新手速来围观

    聊一聊C#接口问题,新手速来围观,一个通俗易懂的例子帮助大家更好的理解C#接口问题,感兴趣的小伙伴们可以参考一下...

    zenkey7072021-12-03
  • C#C#基础之泛型

    C#基础之泛型

    泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个新功能。接下来通过本文给大家介绍c#基础之泛型,感兴趣的朋友一起学习吧...

    方小白7732021-12-03
  • C#浅谈C# winForm 窗体闪烁的问题

    浅谈C# winForm 窗体闪烁的问题

    下面小编就为大家带来一篇浅谈C# winForm 窗体闪烁的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    C#教程网7962021-12-21
  • C#C#直线的最小二乘法线性回归运算实例

    C#直线的最小二乘法线性回归运算实例

    这篇文章主要介绍了C#直线的最小二乘法线性回归运算方法,实例分析了给定一组点,用最小二乘法进行线性回归运算的实现技巧,具有一定参考借鉴价值,需要...

    北风其凉8912021-10-18
  • C#Unity3D UGUI实现缩放循环拖动卡牌展示效果

    Unity3D UGUI实现缩放循环拖动卡牌展示效果

    这篇文章主要为大家详细介绍了Unity3D UGUI实现缩放循环拖动展示卡牌效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参...

    诗远3662022-03-11
  • C#C#实现的文件操作封装类完整实例【删除,移动,复制,重命名】

    C#实现的文件操作封装类完整实例【删除,移动,复制,重命名】

    这篇文章主要介绍了C#实现的文件操作封装类,结合完整实例形式分析了C#封装文件的删除,移动,复制,重命名等操作相关实现技巧,需要的朋友可以参考下...

    Rising_Sun3892021-12-28
  • C#c#学习之30分钟学会XAML

    c#学习之30分钟学会XAML

    一个界面程序的核心,无疑就是界面和后台代码,而xaml就是微软为构建应用程序界面而创建的一种描述性语言,也就是说,这东西是搞界面的...

    C#教程网8812021-12-10
  • C#C# 后台处理图片的几种方法

    C# 后台处理图片的几种方法

    本篇文章主要介绍了C# 后台处理图片的几种方法,非常具有实用价值,需要的朋友可以参考下。...

    IT小伙儿10162021-12-08