zoukankan      html  css  js  c++  java
  • 2.5 C#语法的学习(五) && 判断

    判断是个很简单的概念:如果是________,就________;如果不是________,就________。就是“分情况讨论”。
    我们日常生活中对此应用广泛,比如:
    比如你下班回家的路上,妈妈一通电话,“儿砸,去菜市场问问排骨多少钱,如果35块以下就买3斤,如果35块以上就算了”。
    这其实就是一个判断。
    1.改道前往菜市场;
    2.询问排骨价格;
    3.判断排骨价格:
    如果排骨价格小于等于35块,购买3斤
    如果排骨价格大于35块,不购买
    5.回家。

    在C#中,我们可以通过if-else进行排骨价格的判断

    //获得一个“市场”实例对象
    Market market = new Market("菜市场");
    
    string ribs = "排骨";
    var price = market.GetPrice(ribs);
    if (price <= 35)
    {
    	//购买排骨
    	market.Buy(ribs, 3);
    }
    else
    {
    	//什么都不做,这个else代码段可以不写
    }
    

    在这里,我们创建了一个“Market”类,来定义关于“菜市场”的一切行为(询问价格、购买等)。

    if-else

    if-else可以嵌套使用,再结合逻辑运算符,可以进行复杂的判断。 if-else的教程有if 语句if...else 语句嵌套 if 语句
    逻辑运算符包括&&(取并)、||(取交)、!(取非),这里和数学中的意义是一样的。详细可以看C# 运算符的逻辑运算符部分。
    比如,妈妈的指令更复杂一些,“去菜市场看看有没有猪蹄,如果有40块以下的猪蹄就买猪蹄,否则就买排骨,排骨买3斤,猪蹄买2斤”
    我们整理一下:
    1.询问是否有猪蹄(猪蹄优先于排骨);
    2.判断是否有猪蹄:
    (1)如果有猪蹄,继续询问猪蹄的价格
    如果猪蹄价格小于等于40块,则购买2斤猪蹄,并且回家
    如果猪蹄价格大于40块,不购买猪蹄,继续执行(没有回家)
    (2)如果没有猪蹄,继续执行(没有回家)
    3.询问是否有排骨;
    4.判断是否有排骨:
    (1)如果有排骨,购买3斤排骨,回家
    (2)如果没有排骨,回家
    是不是感觉很复杂?明明只是简单的一句交代~那是因为写程序的时候,需要把所有的情况都考虑到,我们对妈妈的话进行了“补全”。
    我们也可以使用流程图来帮助我们梳理逻辑(这里我使用的是Microsoft Visio):

    接下来我们来实现这个逻辑。

    Market market = new Market("菜市场");
    
    string ribs = "排骨";
    string trotters = "猪蹄";
    var isHaveTrotters = market.IsHaveProduct(trotters);
    if (isHaveTrotters)
    {
    	var trottersPrice= market.GetPrice(trotters);
    	if (trottersPrice <= 40)
    	{
    		market.Buy(trotters, 2);
    		//“回家”,后面的逻辑不再执行
    		return;
    	}
    }
    var isHaveRibs = market.IsHaveProduct(ribs);
    if (isHaveRibs)
    {
    	market.Buy(ribs, 3);
    }
    

    这里有很多种写法,有经验的开发可以把代码写得更加简洁和漂亮。但是力求简洁的同时,请一定、一定多写注释,用代码和注释保证业务逻辑的清晰,这既是为了自己维护代码的方便,也是为了给其他开发阅读提供便利。有时候宁愿把代码写得“低级”一点,更长一点,也不要为了简洁去抛弃代码的可读性。命名要严谨也是一样的道理。

    if-else语句只能填写“真-假”的问题,那么超过两种可能的问题怎么解决呢?当然也可以通过嵌套if-else来解决,但C#为我们提供了更便利的方式——————switch。

    多种情况的判断————switch

    switch多用于枚举值判断、某种状态的判断(比如XXXStatusCode)。这种情况下,使用switch可以变得很简洁而美观,提高代码可读性。详细的用法可以看这里
    switch对选择困难症的小伙伴来说一定不陌生。比如打算放假出去旅游,既想去日本,又想去拉萨,还想去泰国。但是假期又只够去一个地方。这个时候,我们就可以使用“switch”啦。

    var selectedTourism = "你最终选择前往的目的地";
    switch (selectedTourism)
    {
    	case "日本":
    		//做前往日本的旅行攻略
    		break;
    	case "拉萨":
    		//做前往拉萨的旅行攻略
    		break;
    	case "泰国":
    		//做前往泰国的旅行攻略
    		break;
    	default:
    		//选择什么的太困难了,还是宅家里吧
    		break;
    }
    

    理解了么?根据情况,选择了不同的目的地,就会去完成不同的事情(不同的旅游攻略)。在程序中,如果都没有选,就会有一个“默认处理”的入口“default”。

    示例代码

    JudgeConditions

  • 相关阅读:
    PAT 甲级 1113 Integer Set Partition
    简单 dp
    #Leetcode# 707. Design Linked List
    #Leetcode# 817. Linked List Components
    #Leetcode# 268. Missing Number
    #Leetcode# 328. Odd Even Linked List
    #Leetcode# 445. Add Two Numbers II
    jzoj 1252. 天平
    2019.01.26【NOIP提高组】模拟 B 组 总结
    【NOIP2011DAY2】计算系数
  • 原文地址:https://www.cnblogs.com/Lulus/p/12343043.html
Copyright © 2011-2022 走看看