小奇:早啊!老酷!你过来,我这边有个疑问。
老酷:这么早就开始写代码了?
小奇:我想让计算机早点帮我做一点事儿啊!
老酷:会偷懒,这才是程序员。
小奇:我学习了if分支语句 但是为不知道什么时候使用if....else 什么时候使用 if ...else if 什么时候使用if....else if else 什么时候使用if...else if ...else if ... 还有 if ..... if... if.. 这种并列的 分支
老酷:你说的前面的四种有一个共同点,就是只能执行其中之一 也就是说执行了if 那么 else 或者 else if 就不在执行。但是对于 最后一个情况 所有的分支语句都会去做一次判断 只要条件满足 所有的if都有可能执行。所以在使用的时候如果只是执行多种状态其中之一,那么就选择前面的四种情况之一。如果多种状态都有可能执行,那么就使用最后一种情况。
小奇:恩。想输入一个(1-4)的整数 输入1打印“第一季度”, 输入2打印“第二季度”, 输入3打印“第三季度”, 输入4打印“第四季度”
static void Main(string[] args)
{
Console.WriteLine("输入季度1-4");
int ret = int.Parse( Console.ReadLine());
if (ret == 1)
{
Console.WriteLine("第一季度");
}else if (ret == 2)
{
Console.WriteLine("第二季度");
}else if (ret == 3)
{
Console.WriteLine("第三季度");
}
else
{
Console.WriteLine("第四季度");
}
}
老酷:这种写法是不严谨的,用户万一输错了呢?
小奇:对输入的数字提前做一次校验
static void Main(string[] args)
{
Console.WriteLine("输入季度1-4");
int ret = int.Parse( Console.ReadLine());
if (ret<0 || ret>4)
{
Console.WriteLine("输入有误");
}
else
{
if (ret == 1)
{
Console.WriteLine("第一季度");
}
else if (ret == 2)
{
Console.WriteLine("第二季度");
}
else if (ret == 3)
{
Console.WriteLine("第三季度");
}
else
{
Console.WriteLine("第四季度");
}
}
}
老酷:可以,那么你能写一个最后一种情况的例子么?
小奇:判断一个数如果能被2整除就输出"该数是偶数" 如果能被5整除就输出“该数是5的倍数”
以为10满足这两个条件
static void Main(string[] args)
{
Console.WriteLine("输入一个数");
int num = int.Parse(Console.ReadLine());
if (num%2 == 0)
{
Console.WriteLine("{0}是偶数",num);
}
if (num%5==0)
{
Console.WriteLine("{0}是5的倍数",num);
}
}
运行结果:
三次运行结果
老酷:很好!你已经掌握if分支语句,但是你有没有注意到在写有关季度判断程序的时候,如果我们输入的是1则要最少判断两次,如果输入的是4则最少判断5次。假设我们判断的有n多种 每种结果都不同,那么if分支我们就判断的次数就会剧增。
小奇:也是。那么怎么解决?(求知若渴的看着老酷)
老酷:我们可以使用 switch语句啊。
小奇:switch 汉语就是 开关。听起来就比较简单
老酷:你看我给你修改的代码:
static void Main(string[] args)
{
Console.WriteLine("选择季度:(1-4)");
int num = int.Parse(Console.ReadLine());
switch (num)
{
case 1:
Console.WriteLine("第一季度");
break;
case 2:
Console.WriteLine("第二季度");
break;
case 3:
Console.WriteLine("第三季度");
break;
case 4:
Console.WriteLine("第四季度");
break;
default:
Console.WriteLine("输入有误");
break;
}
这种写法每次只需要判断一次。switch后面参数是一个变量,变量和下面的额case 常量匹配,如果变量是4,则4直接和case 4匹配 ,输出case 4 中的代码。匹配不成功,则执行default中的语句。
小奇:switch确实比if简单多了。那我是不是就可以经常使用switch,少用if了?
老酷:还是要看具体情况的,switch可以实现的,if都可以,if能实现的switch实现起来未必方便。自己慢慢悟吧!
小奇:你忙吧!我去悟!!
网友评论