本篇属于:从零开始学C# | 基础篇 | 03
先来聊聊天
分支,无论对程序设计还是对我们自己来讲都是一种非常基础的操作,比如要不要喝水是一个选择,要不要睡觉又是一个选择。
在C#中我们有两种方式去判断用户输入从而给出响应的结果。
在控制台中读取用户输入
使用如下语句:
Console.ReadLine();
返回值是一个字符串,比如:
string userInput = Console.ReadLine();
打豆豆
最简单的if条件语句,它长这样:
if (条件表达式)
{
//满足条件时做的事
}
现在,我们提示用户随便输入一句话,如果用户输入的是"打豆豆"就输出"成功打了豆豆",最后不管怎么样都输出"程序执行完毕"。
源代码如下:
Console.WriteLine("随便输入一句话:"); //提示用户输入
string userInput = Console.ReadLine(); 接收用户输入
if (userInput == "打豆豆")
{
Console.WriteLine("成功打了豆豆");
}
Console.WriteLine("程序执行完毕");
Console.ReadKey(); //让用户任意按键结束程序
特别注意:在程序设计中,等于号是赋值的意思,比如if (userInput = "打豆豆"){
,这句话的意思是"如果把打豆豆赋值给userInput"。如果想表达等于的意思,请使用==
。在JavaScript中,甚至还有类似于===
的严格比较模式。
另外,不等于号是!=
,大于等于是>=
,小于等于是<=
。
我要吃饭
上面的程序,无论你怎么输入,顶多会输出一句打豆豆。打豆豆总有打累的时候,那怎么办呢?
让我们来认识一下终极的"受"--else:
if (条件表达式)
{
//满足条件要做的事情
}
else
{
//不满足条件要做的事情
}
诶嘿,这下有好玩的了。如果不打豆豆,那就吃饭,怎么样?
源代码如下:
Console.WriteLine("随便输入一句话:");//提示用户输入
stringuserInput = Console.ReadLine();接收用户输入
if (userInput == "打豆豆")
{
Console.WriteLine("成功打了豆豆");
}
else
{
Console.WriteLine("啊真香");
}
Console.WriteLine("程序执行完毕");
Console.ReadKey();//让用户任意按键结束程序
吃饭睡觉打豆豆
这时候聪明的小伙伴就要问了:我可不可以在else底下在写if,判断其他情况,就像这样:
Console.WriteLine("随便输入一句话:");//提示用户输入
stringuserInput=Console.ReadLine();接收用户输入
if(userInput=="打豆豆")
{
Console.WriteLine("成功打了豆豆");
}
else
{
if (userInput == "吃饭")
{
Console.WriteLine("啊 真香");
}
else
{
//...
}
}
Console.WriteLine("程序执行完毕");
Console.ReadKey();//让用户任意按键结束程序
可以是当然可以,但这种方法会激起民愤来,所以C#给我们提供了更方便的语句--把else与if写在一起:
if (条件表达式1)
{
//满足条件要做的事情
}
else if (条件表达式2)
{
//不满足条件表达式1但满足条件表达式2做的事情
}
...
else
{
//条件全部不满足时做的事情
}
然后我们便可以写出这么一个东西:
Console.WriteLine("随便输入一句话:");//提示用户输入
stringuserInput = Console.ReadLine();接收用户输入
if (userInput == "打豆豆")
{
Console.WriteLine("成功打了豆豆");
}
else if (userInput == 吃饭)
{
Console.WriteLine("啊 真香");
}
else if (userInput == 睡觉)
{
Console.WriteLine("呼噜呼噜");
}
Console.WriteLine("程序执行完毕");
Console.ReadKey();//让用户任意按键结束程序
简化一些...
如果语句虽然好用,但在一些情况下,会使代码变得冗余。
接下来让我们看一下"判断":
switch (变量)
{
case 值1 : 变量等于值1时做的事;break;
case 值2 : 变量等于值2时做的事;break;
...
default :
全部不满足时做的事
break;
}
这时候你们可能就要问了:break到底是个什么东西?
事实上,编译器并没有这么只能,指哪打哪。如果不加break,你就会眼睁睁的看着编译器啪啪啪从上到下全给你执行一遍。
空间折跃
goto语句是一个神奇的语句,它可以把程序执行导航到指定的地方。
常用的有:
goto 标签
goto case 值
goto default
后两种是在选择语句中使用的,语意非常明显,在这里就不再赘述。那标签又是怎么一回事呢?
static void Main(string[] args){
goto ex;
Console.WriteLine("Main");
ex:
Console.WriteLine("ex");
}
大家可以自己尝试,但是使用goto语句使程序变得非常不可读。使用请尽量避免使用goto语句。
三元表达式
基本语法:
条件表达式?满足时做的事:不满足时做的事
例(取绝对值):
a < 0?-a:a
注:其实C#里还有个函数叫abs(int)可以取绝对值,还可以直接把符号切掉。奇技淫巧千千万,等待大家去学习!
网友评论