C# 语句-条件语句

本文详细介绍了C#中的三种if_else语句形式及使用方法,并解释了与VB的不同之处;深入解析了switch语句的结构与用法,包括case和default的特点;最后讲解了条件运算符?:的语法及其与其他条件语句的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、IF_ELSE语句

C# 的 if 语句有 3 种

第一种
if (条件)
{
    满足条件时执行的语句;
}

第二种
if (条件)
{
    满足条件时执行的语句;
}
else
{
    不满足条件时执行的语句;
}

第三种
if (条件)
{
    满足条件时执行的语句;
}
else if (条件2)
{
    满足条件2时执行的语句;
}
else if (条件3)
{
    满足条件3时执行的语句;
}
else
{
    不满足以上任何条件时执行的语句;
}

和 VB 不同,这里 else if 的 else 和 if 是分开的(不可写成两行),而 VB 中是 elseif。
else if 个数 >= 0。

条件应该是个 bool 类型

  • if (condition == true) 应该简写成 if (condition),没有必要将 bool 值表达式和一个 bool 值比较后再返回 bool 值。 
  • if (n = 3) 这类错误会被发现,为方便叙述,假设 n 为 int 类型,因为 n 被赋予值 3,但 C# 中 int 类型不能隐式转化成 bool 类型。

二、SWITCH语句

switch 结构:
switch (condition)
{
    case 常量表达式1:
        condition == 常量表达式1 时执行的语句;
        break;
    case 常量表达式2:
        condition == 常量表达式2 时执行的语句;
        break;
    default:
        不满足上述条件时执行的语句;
        break;
}

case 个数 >= 0。

任何两个 case 语句的常量表达式都不能具有相同的值,注意是值不能相同。

case 和 default 的 break 必不可少,这不同于 C++。

default 可以省略,但为了可读性以及可维护性,建议写上,即使它什么也不做。

condition 允许的数据类型为:sbyte、byte、short、ushort、uint、long、ulong、char、string 或者枚举类型。

注意:
1、如果一个case语句为空,就可以从这个case跳到下一个case上,这样就可以用相同的方式处理两个或多个case语句了
2、case语句的排放顺序是无关紧要的,甚至可以把default放在最前面
3、在C#中,可以把字符串用作测试变量

三、条件运算符

?: 条件实际应该称作条件运算符,属于运算符一类,由于它具有判断特性,所以这里和条件语句归为一类讲解,其语法是:

condition ? first_expression : second_expression;

它的意思是当 condition 为 true 时,返回 first_expression,否则返回 second_expression。

有些参考书上说 ?: 等价于如下语句:

if (condition)
{
    first_expression;
}
else
{
    second_expression;
}

实际不是的,因为上述 if 语句中两个表达式都没有返回值。

int n = (1>3) ? 1 : 3;

虽然上述示例有点无聊,因为 1 肯定不会大于 3,但它是一个完整正确的 ?: 示例。

另外,上述括号可以不要,只是为了更便于阅读,以及为了减少更改条件时造成的错误,这里加了括号。

int m = 3;
int n = (m*2 > 5) ? m : 5;

n 是多少呢?3 还是 6,应该是 3,可以看出虽然 m 在条件中被乘以 2,但并没有赋值给 m,也就是说 m 的值并未得到改变。int n = ((m=m*2) > 5) ? m : 5; 这样就是 6 了。

条件运算符为右联运算符

a ? b : c ? d : e

等价于

a ? b : (c ? d : e)

而不是

(a ? b : c) ? d : e

而其运算顺序是从左到右,所以下述示例的结果是 2,而不是 3。

int m = 3;
int n = (m=m*2)>7 ? 1 : m>5 ? 2 : 3;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值