黑马程序员技术交流社区
标题:
关于if和else
[打印本页]
作者:
田忠
时间:
2011-11-29 23:51
标题:
关于if和else
本帖最后由 李荣壮 于 2011-11-30 07:57 编辑
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _17_if_else
{
class Program
{
static void Main(string[] args)
{
int cenji = 89;
if (cenji >= 90)
{
Console.WriteLine("A");
}
if (cenji >= 80 && cenji < 90)
{
Console.WriteLine("B");
}
if (cenji >= 70 && cenji < 80)
{
Console.WriteLine("C");
}
if (cenji >= 60 && cenji < 70)
{
Console.WriteLine("D");
}
else
{
Console.WriteLine("E");
}
Console.ReadKey();
}
}
}
为什么结果会跳出两个??
作者:
周敏_.net
时间:
2011-11-30 00:49
你上面的这段代码
if (cenji >= 60 && cenji < 70)
{
Console.WriteLine("D");
}
else
{
Console.WriteLine("E");
}
是一个整体,和前面的几个if语句没有关联,所以执行了前面的一个if之后还是会执行这个,所以就表示如果接收的cenji不在cenji >= 60 && cenji < 70这个范围内就执行输出E
加上中间的一个判断输出B,所以就是输出两个数
你可以把中间的几条if改成else if条件,这样这些这就是一个if条件判断,有了匹配的就不会继续比较后面的了,
也可以在每个if里面加return也行
作者:
王伟
时间:
2011-11-30 09:53
像这样的问题应当用else if,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int cenji = 89;
if (cenji >= 90)
{
Console.WriteLine("A");
}
else if (cenji >= 80 && cenji < 90)
{
Console.WriteLine("B");
}
else if (cenji >= 70 && cenji < 80)
{
Console.WriteLine("C");
}
else if (cenji >= 60 && cenji < 70)
{
Console.WriteLine("D");
}
else
{
Console.WriteLine("E");
}
Console.ReadKey();
}
}
}
作者:
谭显锋
时间:
2011-11-30 10:00
同意楼上的,else会和最近的if配对,形成一个条件,而上面的if 都是一个单独的判断条件。
作者:
田忠
时间:
2011-11-30 12:03
懂了,谢谢大家,{:soso_e113:}
作者:
李海龙
时间:
2011-11-30 14:32
if (cenji >= 60 && cenji < 70)
{
Console.WriteLine("D");
}
else
{
Console.WriteLine("E");
}
关键在于else 如果上面你不想else 可以写成
if (cenji >= 60 && cenji < 70)
{
Console.WriteLine("D");
}
if(cenji <60)
{
Console.WriteLine("E");
}
这样也许你比较明白 说实话多重if--else 有时候会搞混
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2