分支语句: if....else if....else
必须以 if 开头 后面加括号写入需要判断的内容。
举个栗子说明一下
if (bool类型(比较表达式)) // 他会判断括号内的条件是否成立
{
如果上面的条件成立,那么会执行这里面的代码,输出结果
}
else if (bool类型 (比较表达式))// 如果上一个 if 的条件不成立会 向下判断这里的条件是否成立,如果上一条成立的则不会判断这一条。
{
走这里的代码
}
else //只要上面条件都不成立,那么必走else里的代码// 如果上面的条件都不成立会直接走这一条。else后面不能写条件
{
走这里的代码并输出结果
}
else 对应的是它上面的第一个 if , 就像下面这个
if (条件)// 这里判断条件
{
}
else if(条件)// 如果不满足上一条走这里
{
}
if (条件1)// 这是又一个条件
{
}
else// 这里else 对应的是上面条件1的 if ,就是如果不满足 条件1 ,就会来执行else。
{
}
如果第一个 if 满足了会跳过else if 但是遇到if 就会进行判断,如果不满足条件1,那么就会判断最后的else。
如果想让else判断第一个if和else if都不满足之后的条件,就要把 if(条件1)去掉或者放掉else if 的上面。
附上一个练习题
“请输入年份:”(1-9999)
“请输入月份:”(1-12)
“请输入日期:”(要判断大小月,判断闰年)
判断输入的时间日期是否正确
Console.Write("请输入年份:"); int nianfen = Convert.ToInt32(Console.ReadLine()); Console.Write("请输入月份:"); int yuefen = Convert.ToInt32(Console.ReadLine()); Console.Write("请输入日期:"); int riqi = Convert.ToInt32(Console.ReadLine()); if (1 <= nianfen && nianfen <= 9999)//年份输入1-9999 { if (nianfen % 4 == 0 && nianfen % 100 != 0 || nianfen % 400 == 0)//如果是闰年 { if (yuefen == 2)//若等是二月份 { if (riqi >= 1 && riqi <= 29)//如果有29号 { Console.Write("正确"); } else { Console.Write("错误"); } } else if (yuefen == 4 || yuefen == 6 || yuefen == 9 || yuefen == 11)//如果是偶数月 { if (riqi >= 1 && riqi <= 30) { Console.Write("正确"); } else { Console.Write("错误"); } } else//如果是奇数月 { if (riqi >= 1 && riqi <= 31) { Console.Write("正确"); } else { Console.Write("错误"); } } } else if (nianfen>=1&&nianfen<=9999) //如果不是闰年, { if (yuefen == 2 && riqi > 28) { Console.Write("错误"); } if (yuefen == 2)//如果是二月 { if (riqi >= 1 && riqi <= 28) { Console.Write("正确"); } } else if (yuefen == 4 || yuefen == 6 || yuefen == 9 || yuefen == 11)//如果是偶数月 { if (riqi >= 1 && riqi <= 30) { Console.Write("正确"); } else { Console.Write("错误"); } } else//如果是奇数月 { if (riqi >= 1 && riqi <= 31) { Console.Write("正确"); } else { Console.Write("错误"); } } } } else { if (yuefen < 1 || yuefen > 12||nianfen<1||nianfen>9999||riqi<1||riqi>31) { Console.Write("NO"); } } Console.ReadLine();
这里再补充一个分支语句
switch(变量)
{
case 值:代码段;break;(break是跳出的意思)
case 值:代码段;break;
...
...
...
default:代码段;break;
(default可有可无,对应else)
}
这个分支语句比较小众,还是if····else···用得比较多。但是必须要认识。