Csharp中的条件结构

原文地址:http://www.dingos.cn/index.php?topic=933.0

【示例】
为了判断一个数是偶数还是奇数,执行如下操作:
1. 接受一个数
2. 用这个数除以 2 后的余数
3. 根据余数判断:
    余数为0 - 偶数
    余数不为0 - 奇数

Csharp中常见的条件结构:

【if结构】
通过条件为“真”还是为“假”来决定

基本的if条件结构
程序代码:
if (表达式) {
            //语句
}

表达式是要判断的条件,跟在后面的是一个或一组语句。
using System;
class Test {
    public static void Main(){
        int x, y;
        char a = 'y';
        x = y = 0;
        if (a == 'y'){
            x += 5;
            Console.WriteLine("The numbers are {0} and /t{1}", x, y);
        }
    }
}
if语句后面用大括号扩起来。如果if语句后面有多个语句,并且这些语句应当作一个语句来看待,应将它们用大括号括起来


【if-else结构】
if(条件){
            //条件成立时执行
}else{
            //条件不成立时执行
}
如果 if 表达式的值为 true ,将执行 if 语句(一个或一组)后的语句块
如果 if 表达式的值不为 true ,那么控制权将交给 else 表达式后面的语句
else 语句是可选的。 仅当 if 表达式的值为 false 时,才会执行 else 后的语句或语句序列

【示例】显示一个数是偶数还是奇数
using System;
class Test {
    public static void Main(){
        int num , res ;
        Console.WriteLine("Enter a number :");
        num = Convert.ToInt32(Console.ReadLine());
        res = num % 2;
        if (res == 0)
            Console.WriteLine("Then number is Even");
        else
            Console.WriteLine("The number is Odd ");
    }
}

【if、if-else结构】
在if或if-else结构中,条件表达式的返回值为 bool值(true、false)
当条件表达式由多个表达式组成时常用逻辑运算符连接,注意运算符的优先级,可以用 ()来控制运行顺序。
在条件满足或不满足时如果执行多条语句(大于一条语句)时必须用 {}括起来。
在执行的语句中可以把包含其他的if、if-else结构,称为 嵌套if结构
可以使用 表达式1 ? 表达式2 : 表达式3三元运算符来代替简单的if-else结果。
表达式1:条件表达式
表达式2:表达式1成立时执行的语句
表达式3:表达式1不成立时执行的语句

【if-else-if结构】多路分支结构
多重选择是以else-if 来扩充if-else结构,提供了两个语句外的选择
if (表达式)
            语句;
else if (表达式)
            语句;
else if (表达式)
            语句;

else
            语句;
if-else-if 语句也称为 if-else-if 台阶或if-else-if 阶梯,条件的计算是自顶向下的

【示例】
using System;
class Test {
    public static void Main(){
        int x;
        x = 0;
        Console.WriteLine("Enter Choice (1 - 3) :");
        x = Convert.ToInt32(Console.ReadLine());
        if (x == 1)
            Console.WriteLine("/nChoice is 1");
        else if ( x == 2)
            Console.WriteLine("/nChoice is 2");
        else if ( x == 3)
            Console.WriteLine("/nChoice is 3");
        else
            Console.WriteLine("/nInvalid Choice ");
    }
}
在if或else后的语句不止一个,应用大括号{}将他们组织起来。这样的组会称为“复合语句”或“一个块”

【嵌套if语句】
嵌套的if语句就是在if或else语句中包含另一个if语句。在Csharp语言中,else语句通常与同一块中距离它最近且未与else关联的if语句相匹配。
if(表达式-1){
      if (表达式-2)
            语句-1;
      if (表达式-3)
            语句-2;
      else
            语句-3;      /*与if(表达式-3)相匹配
}else
      语句-4;                      /*与if (表达式-1)相匹配 

嵌套if执行


【示例】
using System;
class Test {
    public static void Main(){
        int x, y;
        x = y = 0;
        Console.WriteLine("Enter Choice (1 - 3) :");
        x = Convert.ToInt32(Console.ReadLine());
        if (x == 1){
            Console.WriteLine("/nEnter value for y (1 - 5) :");
            y = Convert.ToInt32(Console.ReadLine());
            if (y <= 5)
                Console.WriteLine("/nThe value for y is : %d", y);
            else
                Console.WriteLine("/nThe value of y exceeds 5");
        }else
            Console.WriteLine("/nChoice entered was not 1");
    }
}

【switch语句】
switch 语句是一种多路判定语句,它判断表达式的值是否与整数或字符常量列表中的某个值相匹配。若找到了相应的匹配,就会执行与常量关联的语句。
switch(int / char / string表达式){
            case 常量1:
                        语句集
                        break;            //必须有
            case 常量2:
                        语句集
                        break;            //必须有
            ……
            default:
                        语句集
                        break;            //必须有
}
switch、case、break和default都是关键字,语句可以是简单或复合语句。switch后的表达式需要用圆括号括起来,而且switch语句的主题用{ }括起来。计算表达式的数据类型要与指定的case常量的数据类型匹配。表达式不包含任何变量名,可以是常量。

执行顺序


示例
using System;
class Test {
    public static void Main(){
        int basic;
        Console.WriteLine("/n please enter your basic:");
        basic = Convert.ToInt32(Console.ReadLine());
        switch(basic){
            case 200:
                Console.WriteLine("/n Bonus is dollar {0}/n", 50);
                break;
            case 300:
                Console.WriteLine("/n Bonus is dollar {0}/n", 125);
                break;
            case 400:
                Console.WriteLine("/n Bonus is dollar {0}/n", 140);
                break;
            case 500:
                Console.WriteLine("/n Bonus is dollar {0}/n", 175);
                break;
            default:
                Console.WriteLine("/n Invalid entry");
                break;
        }
    }
}

如果表达式与其中的一个case标记匹配,switch语句是很有用的。switch语句不能用来判断一个值是否在指定的范围内, 这种情况下还是使用if-else 语句

  • if结构
  • switch结构

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜晚回家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值