黑马程序员技术交流社区
标题:
求指点错误,求指教断点使用
[打印本页]
作者:
朱传波
时间:
2013-2-25 16:31
标题:
求指点错误,求指教断点使用
本帖最后由 朱传波 于 2013-2-25 20:58 编辑
这是在if_else if 中的小练习
请为学生的成绩进行评级
//成绩90以上,A;
// 80~90.B(含80);
// 70~80()含70,C;
// 70~60(含60);D;
// 60以下,E;
如果不用else if ,代码如下:
namespace 学生考试成绩评测
{
class Program
{
static void Main(string[] args)
{
//成绩90以上,A;
// 80~90.(含80),B;
// 70~80(含70),C;
// 70~60(含60),D;
// 60以下,E;
Console.WriteLine("请输入您的成绩");
int score = Convert.ToInt32(Console.ReadLine());
if (score >= 90)
{
Console.WriteLine("A");
}
if (score >= 80 && score < 90)
{ Console.WriteLine("B"); }
if (score >= 70 && score < 80)
{
Console.WriteLine("C");
}
if (score >= 60 && score < 70)
{
Console.WriteLine("D");
}
else
{
Console.WriteLine("E");//为什么每一次这句话都是输出语句???
}
Console.ReadKey();
}
}
}
复制代码
疑问在于,每一次不管输入什么数字,最后的“E”都会输出,如图所示。求解答
还有,如果全部用 if 来编写的话,计算机的处理过程中,是否会将全部的 if 语句都走一遍?
另外想请教一下断点工具的使用方法,只是看到苏老师在用,并没有讲解,所以很迷茫啊。
作者:
xiaoxiang_04
时间:
2013-2-25 16:41
本帖最后由 xiaoxiang_04 于 2013-2-25 16:43 编辑
错误:
你输入的数据会走每一个if语句,假设你输入的是90,程序输出A,然后会继续往下判断,最后两段代码
if (score >= 60 && score < 70)
{
Console.WriteLine("D");
}
else
{
Console.WriteLine("E");//为什么每一次这句话都是输出语句???
}
输入的是90, if (score >= 60 && score < 70)不成立,所以系统会直接调用else的语句。
解决方法有两种
一个是使用
if{} else if{} else if{} else {} 结构的判断,
还有一个是在每个if{}里面加个return,如果满足if条件就终止往下运行代码
这里没必要用断点,如果你要用的话,就在你觉得需要坚挺的代码前面,点一下出个红点,然后你运行代码,程序运行到断点会自动停止,这时你用鼠标放在那些变量上,会看到它的值等信息
作者:
生活墨墨
时间:
2013-2-25 16:55
if (score >= 60 && score < 70)
25. {
26. Console.WriteLine("D");
27. }
28. else
29. {
30. Console.WriteLine("E");//为什么每一次这句话都是输出语句???
31. }
不可能每次都输出,如果大于等于60并且小于70时是不会输出的,你的逻辑有问题。
作者:
zhiaijingming
时间:
2013-2-25 17:00
用F9在你要加断点的地方加上断点,F10进行调试
作者:
安玉波
时间:
2013-2-25 17:12
最后那个判断 可以这样写
if (score >= 60 && score < 70)
25. {
26. Console.WriteLine("D");
27. }
28. else if(score < 60)//在满足score小于60的情况下才执行
29. {
30. Console.WriteLine("E");
31. }
关于断点的使用:在代码出设置断点,按F5 启动程序 按F10逐句往下执行但不会跳到调用的方法体重中执行 按F11执行到调用的方法时会跳到方法体重逐句执行。
希望对你有所帮助。
作者:
朱传波
时间:
2013-2-25 20:58
xiaoxiang_04 发表于 2013-2-25 16:41
错误:
你输入的数据会走每一个if语句,假设你输入的是90,程序输出A,然后会继续往下判断,最后两段代码
...
豁然开朗!十分感谢xiaoxiang兄的解答,简明扼要,条理清晰!衷心希望管理员给予加分
作者:
dbqwaii
时间:
2013-2-25 21:36
if (score >= 90)
15. {
16. Console.WriteLine("A");
17. }
18. else if (score >= 80 && score < 90) 先把这里换成else-if
19. { Console.WriteLine("B"); }
29. else if(score < 60) 这里也换成else-if
{
30. Console.WriteLine("E");//为什么每一次这句话都是输出语句???
31. }
32. Console.ReadKey();
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2