黑马程序员技术交流社区

标题: 一道do-while的小程序,出什么毛病 [打印本页]

作者: 许大虾    时间: 2013-5-30 16:15
标题: 一道do-while的小程序,出什么毛病
本帖最后由 许大虾 于 2013-5-30 22:38 编辑
  1. int input;
  2. bool flag = true;
  3. do
  4. {
  5. try
  6. {
  7. Console.WriteLine("请输入一个数字");
  8. input=Convert.ToInt32(Console.ReadLine());
  9. Console.WriteLine("{0}的2倍是{1}",input,input*2);
  10. flag=true;
  11. }
  12. catch
  13. {
  14. flag=false;
  15. }
  16. }
  17. while();
  18. Console.ReadKey();
复制代码
提示错误:
作者: 曾大鹏    时间: 2013-5-30 16:37
while();
要写条件的啊
作者: lxf_cat5277    时间: 2013-5-30 16:44
while(条件);
作者: 黄炳期    时间: 2013-5-30 17:48
呵呵,楼主粗糙一回了。
do while循环应该有个条件表达式的。
  while( 条件表达式);
希望能帮到你
作者: 袁梦希    时间: 2013-5-30 20:31
以后有事情   或者没加分 给我留言或者看我的个性签名
作者: 黄炳期    时间: 2013-5-30 20:45
袁梦希 发表于 2013-5-30 20:31
以后有事情   或者没加分 给我留言或者看我的个性签名

哈哈,知道了袁大!
作者: 袁梦希    时间: 2013-5-30 20:46
黄炳期 发表于 2013-5-30 20:45
哈哈,知道了袁大!

你头像真有意思;P
作者: 关关雎鸠    时间: 2013-5-30 20:49
你的while()是吃闲饭的,C#不能让他光吃内存不干事啊。。
作者: 黄炳期    时间: 2013-5-30 20:49
袁梦希 发表于 2013-5-30 20:46
你头像真有意思

用你的签名:叼炸了!
有木有!
作者: 李云飞    时间: 2013-5-30 22:16
int input;
bool flag = true;
do
{
try
{
Console.WriteLine("请输入一个数字");
input=Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0}的2倍是{1}",input,input*2);
flag=true;
}
catch
{
flag=false;
}
}
while();//按楼主的意图(只是我自己的菜测哦),这里的循环结束条件应该为while(flag),这样当转换失败时就会推出do-while循环的
Console.ReadKey();
楼主 你的do -while循环缺少退出条件呀,这样就会成为一个死循环直到程序奔溃程序才会结束的。循环有集中形式但是每种形式的循环都要确定一个循环退出条件的,缺少就会成为死循环的。再者我们在写程序时劲量不要用try-catch语句来提醒我们程序有错误,我们对一些常见的错误在写程序时就应该知道的。
如有不妥之处,请加以指正大家彼此相互学习,一起进步,一步步向黑马的大门迈进。谢谢
作者: Sofoul    时间: 2013-5-30 22:16
do{执行语句}while(条件表达式);while里面是要有条件的,否则的话就回提示非法表达式开始,顺带着:while(true)和for( ; ; )为死循环。。。{:soso_e113:}
作者: a724228803    时间: 2013-5-31 12:53
方法一:
循环,while(表达式)   表达式的值为 布尔类型的。 所以要在表达式上加上flag,


作者: 王盛    时间: 2013-5-31 16:24
do While();的语法格式:  do {循环体} while(循环条件); 你的循环条件里面什么都没写~!
作者: 闫常国    时间: 2013-6-1 14:55
while()里面必须要有循环条件
作者: 一直在努力    时间: 2013-6-2 13:47
第一个。。改下代码格试。。方便阅读

int input;

bool flag = true;

do

{

         try

        {

                 Console.WriteLine("请输入一个数字");

                 input=Convert.ToInt32(Console.ReadLine());

                 Console.WriteLine("{0}的2倍是{1}",input,input*2);

                 flag=true;

        }

        catch

        {

              flag=false;

        }

}

while();

Console.ReadKey();
复制代码

while里面没写条件。。。

改成while(flag );

这样就可以了


作者: xiangsoft    时间: 2013-6-3 23:41
while()里面什么都没有当然错了




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