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

 更新时间:2020年6月25日 11:26  点击:1813

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

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

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”!

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”
以下是两种情况的输出结果:

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

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

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时输出结果是"你的年龄不满足我的要求"

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

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#的流程控制语句,学习重点在对条件判断语句、循环语句、循环控制语句的理解和掌握,并熟悉使用对象控制语句。本章的难点在于对这些流程控制语句的灵活应用和某些流程控制语句间区别的理解。

[!--infotagslink--]

相关文章

  • C#实现简单的登录界面

    我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。...2020-06-25
  • 浅谈C# 字段和属性

    这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • C#实现简单的Http请求实例

    这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#中new的几种用法详解

    本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
  • 使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)

    这篇文章主要介绍了使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#开发Windows窗体应用程序的简单操作步骤

    这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • C#和JavaScript实现交互的方法

    最近做一个小项目不可避免的需要前端脚本与后台进行交互。由于是在asp.net中实现,故问题演化成asp.net中jiavascript与后台c#如何进行交互。...2020-06-25
  • C++调用C#的DLL程序实现方法

    本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
  • 轻松学习C#的基础入门

    轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
  • C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
  • C#绘制曲线图的方法

    这篇文章主要介绍了C#绘制曲线图的方法,以完整实例形式较为详细的分析了C#进行曲线绘制的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • c#自带缓存使用方法 c#移除清理缓存

    这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25
  • c#中(&&,||)与(&,|)的区别详解

    这篇文章主要介绍了c#中(&&,||)与(&,|)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 经典实例讲解C#递归算法

    这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#中list用法实例

    这篇文章主要介绍了C#中list用法,结合实例形式分析了C#中list排序、运算、转换等常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25