黑马程序员技术交流社区
标题:
关于while循环
[打印本页]
作者:
↖落葉下♀媃媚
时间:
2013-3-28 18:50
标题:
关于while循环
int i = 0;
Console.WriteLine("这道题你会做了吗?(y/n)");
string answer = Console.ReadLine();
while(answer=="n" || i<10)//当回答为n时或者小于十遍就进行while循环
{
Console.WriteLine("老师讲一遍题");
i++;
Console.WriteLine("这道题你会做了吗?(y/n)");
answer = Console.ReadLine();
}
Console.WriteLine("可以放学了");
Console.ReadKey();
复制代码
是不是我程序出问题了,怎么一直出现再讲一遍?我认为我的代码没问题啊!!!
作者:
许正龙
时间:
2013-3-28 19:07
while里面的条件应该是(answer=="n"&&i<10)吧,因为只要是讲了10遍,不管懂不懂都放学了,如果用“||”就表示两个条件只要有一个为真这个表达式就为真,就是说不管老师讲了多少遍,只要学生不懂都要还要再将一遍!你试试看
作者:
邓建军
时间:
2013-3-28 19:11
Console.WriteLine("这道题你会做了吗?(y/n)");
string answer = Console.ReadLine();
while(answer=="n" || i<10)
//很明显这里错了,
把||改成&&就行了
,
当answer="y"时, || i<10这条件个成立,一真为真,所以会执行while
{
Console.WriteLine("老师讲一遍题");
i++;
Console.WriteLine("这道题你会做了吗?(y/n)");
answer = Console.ReadLine();
}
遇到不是自己想要的结果,可以自己打断点,然后按F11一步一步执行,很快就能找到错误的原因。
作者:
张新钊
时间:
2013-3-28 19:19
while(answer=="n" || i<10)这个地方逻辑运算符用错啦,应该是并且的关系,用&&这个逻辑运算符。。
作者:
张新钊
时间:
2013-3-28 19:22
你可以想一下, 如果这里while(answer=="n" || i<10)用“||”运算符的话,当输入“y”时,也符合"i<10"的条件时,同样会执行循环,所以这里用的运算符应该是"&&"运算符
作者:
张振
时间:
2013-3-28 19:30
int i = 0;
Console.WriteLine("这道题你会做了吗?(y/n)");
string answer = Console.ReadLine();
while(answer=="n" || i<10)//当回答为n时或者小于十遍就进行while循环
{
Console.WriteLine("老师讲一遍题");
i++;
Console.WriteLine("这道题你会做了吗?(y/n)");
answer = Console.ReadLine();
}
Console.WriteLine("可以放学了");
Console.ReadKey();
首先你的逻辑关系表达式用错了 (answer=="n" || i<10 ) ||是或的意思,总一个会成立 ,你不会输入n 程序也会默认i<10成立 还自动进入循环10遍
所以你把||改成 && “与”逻辑关系就可以了 同时成立 就不会了
作者:
苏冉
时间:
2013-3-28 19:31
你的程序里面有死循环,可自查出来
作者:
刘胜寒
时间:
2013-3-28 19:48
楼主我的真的佩服你,虽然我是一个java初学者 ,但是你的whie()里面的"||"改成“&&”就不会死循环。"||"这个是说,只要左右两边有一个满足条件,就会执行while()循环,而用"&&"s是左右两边都要满足,才能执行while()循环。希望你对有帮助。其实我是捞技术分的。
作者:
HM邱刚权
时间:
2013-3-29 15:27
本帖最后由 HM邱刚权 于 2013-3-29 15:30 编辑
推荐你个更简单的方法哦!
for (int i = 0; i <= 9; i++)//循环10次
{
Console.WriteLine("道题你会做了吗?");
string answer = Console.ReadLine();//接受学生的回答
if (answer == "y")//回答Y即可跳出此次循环否则循环10次自动关闭循环
{
break;
}
}
Console.WriteLine("你可以放学了");
Console.ReadKey();
首先你要搞懂他的条件是或者就用||并且的话就用&& 所以写这种循环这容易发生错误的就是这个地方!所以你可以跟我一样 直接循环10次
然后在里面进行判断!回答Y就跳出!否则10次后自己跳出!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2