if-else
在上一章中用到了这个关键词,它表示如果条件不满足则执行
int a=12,b=24;
int c;
if(a>b)
{
c=a;
}
else{
c=b;
}
Console.WriteLine(c);
此效果为输出a和b较大的值
记得我们之前说的常量和不定量吗
int a;
bool t=true;
if(t)
{
a=12;
}
Console.WriteLine(a);
此语句不予通过,编译器不能确认变量的数值
int a;
bool t=true;
if(t)
{
a=12;
}else{
a=1;
}
Console.WriteLine(a);
虽然不知道会经过哪一条,但编译器知道在if-else语句里一定会经过一条
而在两个代码块中都为a赋值了,因此在使用a时绝对是已经存在值的
int a;
if(1<2)
{
a=12;
}
Console.WriteLine(a);
int a;
if(false)
{
a=12;
}
Console.WriteLine(a);
在第一条语句中,编译器知道a一定会被赋值,因此此时无需else
在第二条语句中,编译器会直接报错,理由是不可达代码。即无论如何此代码都不可能运行。
if-else-if
有时候选择不止一次,比如
有1000元可以买上品耳机,如果没有1000元,那也可以用500买次一点的耳机
如果500都没有那就只能花200凑合一下。啥?一点钱都没有?告辞!
int a=Convert.ToInt32(Console.ReadLine());
if(a>1000)
{
Console.WriteLine("上品");
}
else if(a>500)
{
Console.WriteLine("二等品");
}
else if(a>200)
{
Console.WriteLine("过渡");
}
else
{
Console.WriteLine("告辞");
}
在else后面加空格,然后按if的形式写便可以续接
只有前面的代码块都不执行,后面的if才会进行判断
因此续接if的条件等效于 [!前面的条件&&条件]
嵌套if
嵌套if即在if的代码块里再写一个if,这个内容并没有什么值得注意的。只要逻辑不混乱就行。
这个内容不多讲
int a = 12, b = a + 2, c = b + 4;
if (a > b)
{
if (a > c)
{
Console.WriteLine("最大值是a:"+a);
}
else
{
Console.WriteLine("最大值是c:" + c);
}
}
else
{
if (b > c)
{
Console.WriteLine("最大值是b:" + b);
}
else
{
Console.WriteLine("最大值是c:" + c);
}
}