小孩子才做选择 大人全都要
选择语言有
1、if语句
2、switch语句
if语句结构:
结构一:
if(true) // ()内为判断条件 当条件结果为真时执行{}内语句
{
Console.WriteLine("True"); // 输出True
}
一句话,做还是不做,当()内为true时执行{}内的语句,当()内为false时,不执行{}内语句
结构二:
if(true) // ()内判断条件 判断条件为true时执行下面{}内语句
{
Console.WriteLine("True");
}
else // 判断条件为false时执行下面{}内语句
{
Console.WriteLine("False");
}
to be or not to be
生或死选一个,当()内为true执行if后面{}内的语句,当()内为false执行else后面{}内的语句
从逻辑上与三目运算符相似 但三目运算符需要有赋值
结构三:
int i = 1;
if(i < 0) // ()内判断条件 结果为true时执行下面{}内语句 结束后到最下方
{
Console.WriteLine("i < 0");
}
else if(i == 0)
// 当上面判断条件为false时 判断该()结果 为true执行下面{}内语句 结束后到最下方
{
Console.WriteLine("i == 0");
}
else // 当上面判断条件都为false时 执行下面{}内语句
{
Console.WriteLine("i > 0");
}
若水三千 取其一瓢
若if后()内为true 执行if后的{}内语句 然后跳至else{}后 若if后()内为false else if()内为true 则执行else if后{}内语句 若else if()内也为false 则执行else{}内语句。
if语句的嵌套:
if(true) // 判断条件为true时执行{}内语句
{
if(true) // 判断条件为true时执行{}内语句
{
Console.WriteLine("内部if语句true");
}
else // 最近的if()内判断条件为false 执行{}内语句
{
Console.WriteLine("内部if语句false");
}
}
当出现if语句嵌套时,else语句与最近的if语句相匹配
switch语句
switch(1) // ()可使用整型、char、string、bool类型的表达式
{
case 1: // case 后面使用常量表达式
Console.WriteLine("1");
break; // 当case:后有执行语句时 在下一个case出现前必须要有break语句
case 2:
case 3:
// 当case:后无执行语句 可多条执行同一语句内容
Console.WriteLine("2 和 3");
break;
default:
// 当switch()内的表达式与以上case语句后的常量表达式都不匹配 则执行default以下语句
Console.WriteLine("其他");
break;
}
从功能上switch语句与if语句的第三种结构相似,在使用上if语句常用作范围分支,switch语句用作定量的选项分支
输出对应年份及月份的天数:
Console.WriteLine("请输入要查询的年份:");
int year = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("请输入要查询的月份:");
int month = Convert.ToInt16(Console.ReadLine());
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
Console.WriteLine($"{year}的{month}有31天。");
break;
case 4:
case 6:
case 9:
case 11:
Console.WriteLine($"{year}的{month}有30天。");
break;
case 2:
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
Console.WriteLine($"{year}的{month}有29天。");
}
else
{
Console.WriteLine($"{year}的{month}有28天。");
}
break;
}
注意对闰年的判断 世纪闰年 能被400整除 普通闰年 能被4整除但不能被100整除