条件判断语句 if
在一行一行按顺序执行的代码的基础上,加入条件判断语句if就可以实现代码的分支了
string s = Console.ReadLine();
if (s == "hi")
{
Console.WriteLine("你好!");
}
else
{
Console.WriteLine("啥?");
}
这是一组if代码的基本用法。执行逻辑是,如果输入hi,则输出“你好!”,否则就输出“啥?”
其中双等号==是用来判断相等的。在C#中,一个等号是赋值运算,而判断相等需要用两个等号表示。
当左边等于右边时,判断结果为真;左边不等于右边时判断结果为假。
举例为:1 + 1 == 2 判断为true;1 + 1 == 3 判断为false
布尔类型
布尔类型的结果只有true和false
上述例子可以写为:
string s = Console.ReadLine();
bool b = s == "hi";
if (b)
{
Console.WriteLine("你好!");
}
else
{
Console.WriteLine("啥?");
}
同样可以输出相同的结果,且这样的写法显然符合字符串的转换规则(见笔记5)
常用的bool运算符
等于 ==
不等于 !=
大于 >
小于 <
大于等于 >=
小于等于 <=
取反 !
*取反的意思是true变false;false变true
表示逻辑关系的连接符号:且(&&);或(||)
if 语句的完整形式
if(条件1)
{
//第一行代码
}
else if (条件2) //可以有任意多个else if,也可以没有
{
//第二段代码
}
else
{
//最后一段代码。如果前面条件均不满足,最后一段必然执行
}
依照这个逻辑,完成一个例题:
要求,提示用户输入一个分数(0~100),程序告诉用户该分数属于哪个等级。等级分为四档:
·A(90~100)
·B(80~89)
·C(60~79)
·D(小于60)
若超过范围则提示无法查出等级,若不符合A则给予鼓励,若符合A则表示恭喜
例1
Console.WriteLine("请输入你的分数(0~100)查看等地");
int score = int.Parse(Console.ReadLine());
bool a = score >= 90 && score <= 100;
bool b = score >= 80 && score <= 89;
bool c = score >= 60 && score <= 79;
bool d = score < 60 && score >= 0;
if (a)
{
Console.WriteLine("A");
Console.WriteLine("恭喜!");
}
if (b)
{
Console.WriteLine("B");
}
if (c)
{
Console.WriteLine("C");
}
if (d)
{
Console.WriteLine("D");
}
if (score >100 || score < 0)
{
Console.WriteLine("您输入的分数超过了我可以预测的范围");
}
if (!a && score <= 100 && score >= 0)
{
Console.WriteLine("下次努力考A啊");
}
用else if 改进则得到
例2
//例子改进
Console.WriteLine("请输入你的分数(0~100)查看等地");
int score = int.Parse(Console.ReadLine());
if (score >= 90 && score <= 100)
{
Console.WriteLine("A");
Console.WriteLine("恭喜!");
}
else if (score >= 80 && score <= 89)
{
Console.WriteLine("B");
}
else if (score >= 60 && score <= 79)
{
Console.WriteLine("C");
}
else if (score < 60 && score >= 0)
{
Console.WriteLine("D");
}
else
{
Console.WriteLine("您输入的分数超过了我可以预测的范围");
}
if (score < 90 && score >= 0)
{
Console.WriteLine("下次努力考A啊");
}
有了else if的帮助,条件判断容易写了很多,并且可以避免ABCD四种情况同时打印的可能
**其中,一个if到一个else是一个整体代码