C#笔记整理(if-switch)

本文详细介绍了C#中的基本语法,包括布尔类型的运算符、按位运算符、三元运算符以及goto、if和switch等语句的使用方法,并对比了if与switch的性能和适用场景。

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

string myGirlFriend = null;
if (myGirlFriend == null)
{
    Console.WriteLine("Please New");
}
else
{
    Console.WriteLine("Please Aerate");
}
Console.ReadKey();

布尔类型

运算符类别描述
==二元等于
!=二元不等于
<二元小于
>二元大于
<=二元小于等于
>=二元大于等于
一元逻辑非
&一元逻辑与
|一元逻辑或
^一元逻辑异或
&&一元逻辑与
||一元逻辑或

备注:

bool a = true;
bool b = false;
if (a|b)
{
    Console.WriteLine("a|b");
}
if (a||b)
{
    Console.WriteLine("a||b");
}

其中两个if语句的效果是一样的,但是"|“运算符需要对a,b同时去判断,而”||“运算符判断第一个a为true就不需要去判断b的值.同理”&“和”&&“是一样的道理,在代码量大的程序中,使用”||“和”&&"是可以提升性能的.

按位运算符

&:按位与
|:按位或
^:按位异或
~:按位取反
大多数代码都不用,但是应该知道它的存在,主要用于高度优化代码

三元运算符?:

bool a = true;
int i = a ? 1 : 2;
Console.WriteLine(i);//此时i为1

判断条件?表达式1:表达式2
若判断条件为真,则执行表达式1
若判断条件为假,则执行表达式2

goto语句

尽量少用。
当你的逻辑非常清晰时,它可以控制什么时候执行哪些代码的一种简单方式。(汇编语言会经常接触)

if语句

int i = 10;
if (i == 1)
{
    Console.WriteLine(i);
}
else if (i == 2)
{
    Console.WriteLine(i);
}
else
{
    Console.WriteLine(i);
}
//此时输出10
if(条件1)
{
    代码1
}
else if(条件2)
{
    代码2
}
……
else
{
    代码n
}

编译器首先对判断条件1,为真,执行代码1;为假,判断条件2,条件2为真,执行代码2,为假,判断……若以上条件都为假,则执行代码n。else在if语句中可以不写。

switch语句

int i = 10;
switch (i)
{
    case 1:
        Console.WriteLine(1);
        break;
    case 2:
        Console.WriteLine(2);
        break;
    case 'a':
        Console.WriteLine('a');
        break;
    default:
        Console.WriteLine("不符合列举条件");
        break;
}

还可以这样:

int i = 2;
switch (i)
{
    case 1:
    case 2:
        Console.WriteLine("1 or 2");
        break;
    case 'a':
        Console.WriteLine('a');
        break;
    default:
        Console.WriteLine("不符合列举条件");
        break;
}

if和switch在使用时注意事项

普遍认为switch的性能是高于if的,但是有时候为了代码的阅读方便以及对于判断逻辑的辨别,if的使用频率是比较高的。
例:

bool a=true,b=true,c=false;
if(a&&b&&c)
{
    Console.WriteLine("a=true,b=true,c=true");
}
else if(!a&&b&&c)
{
    Console.WriteLine("a=false,b=true,c=true");
}
else if(a&&b&&!c)
{
    Console.WriteLine("a=true,b=true,c=false");
}
...
else
{
    Console.WriteLine("a=false,b=false,c=false");
}

上述代码对a,b,c三个bool变量进行了判断,用if可以直观明了的对其进行排版,代码阅读性高,虽然使用switch也可以实现但是阅读性低。
但是

int i=1;
switch (i)
{
    case 1:
        Console.WriteLine("1");
        break;
    case 2:
        Console.WriteLine("2");
        break;
    case 'a':
        Console.WriteLine("3");
        break;
    default:
        Console.WriteLine("无");
        break;
}
//换成if
if(i == 1)
{
    Console.WriteLine("1");
}
else if(i == 2)
{
    Console.WriteLine("2");
    
}
else if(i == 3)
{
    Console.WriteLine("3");
}
else
{
    Console.WriteLine("无");
}

类似这种情况应该使用switch
switch的查找类似二叉树,if的则是线性
具体使用哪一种方式应该在你的项目中决定


欢迎关注我的微信个人订阅号
这里写图片描述
我的微博:well火柴
每天多学一点0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值