黑马程序员技术交流社区

标题: 一个关于老师给学生讲题的问题,如何使用while实现for循环 [打印本页]

作者: 月儿圆    时间: 2013-6-13 00:37
标题: 一个关于老师给学生讲题的问题,如何使用while实现for循环
本帖最后由 月儿圆 于 2013-6-16 00:32 编辑

如下:是在视频中学的,自己想到的,但是总是觉得程序不够简化,谁能优化一下?问题是进入if条件后不能继续上面的while循环了

  1. <P>bool flag = false;
  2. Console.WriteLine("这道题你会了吗(y/n)");
  3. string answer = Console.ReadLine();
  4. answer = answer.ToLower();
  5. int i = 0;
  6. while (answer == "n" && i < 10)
  7. {
  8. Console.WriteLine("老师讲一下");

  9. Console.WriteLine("这道题你会了吗(y/n)");
  10. answer = Console.ReadLine();
  11. answer = answer.ToLower();
  12. i++;
  13. }

  14. if (answer == "y")
  15. {
  16. Console.WriteLine("好聪明你们可以放学了");
  17. flag = true;
  18. }
  19. if (answer != "n" && answer != "y")
  20. {
  21. Console.WriteLine("输入有误,请重新输入");</P>
  22. <P>answer = Console.ReadLine();
  23. answer = answer.ToLower();

  24. flag = true;
  25. }
  26. if (flag == false)
  27. {
  28. Console.WriteLine("讲了十遍还不会?!放学吧!明天再讲!!!");
  29. }
  30. Console.ReadKey();

  31. </P>
复制代码

作者: 许庭洲    时间: 2013-6-13 06:50
本帖最后由 许庭洲 于 2013-6-13 06:51 编辑

while(answer != "n" && answer != "y")
{
     while (answer == "n" && i < 10)
     {
          Console.WriteLine("************");
          Console.WriteLine("***********(y/n)");
          answer = Console.ReadLine();
          answer = answer.ToLower();
          i++;
    }
    if (answer == "y")
    {
        Console.WriteLine("*******************");
        flag = true;
    }
}
if (flag == false)
{
      Console.WriteLine("**************************");
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2