A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许大虾 中级黑马   /  2013-5-30 16:15  /  3066 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 许大虾 于 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();
复制代码
提示错误:

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

15 个回复

倒序浏览
while();
要写条件的啊
回复 使用道具 举报
while(条件);
回复 使用道具 举报
呵呵,楼主粗糙一回了。
do while循环应该有个条件表达式的。
  while( 条件表达式);
希望能帮到你

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
以后有事情   或者没加分 给我留言或者看我的个性签名
回复 使用道具 举报
袁梦希 发表于 2013-5-30 20:31
以后有事情   或者没加分 给我留言或者看我的个性签名

哈哈,知道了袁大!
回复 使用道具 举报
黄炳期 发表于 2013-5-30 20:45
哈哈,知道了袁大!

你头像真有意思;P
回复 使用道具 举报
你的while()是吃闲饭的,C#不能让他光吃内存不干事啊。。
回复 使用道具 举报
袁梦希 发表于 2013-5-30 20:46
你头像真有意思

用你的签名:叼炸了!
有木有!
回复 使用道具 举报
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语句来提醒我们程序有错误,我们对一些常见的错误在写程序时就应该知道的。
如有不妥之处,请加以指正大家彼此相互学习,一起进步,一步步向黑马的大门迈进。谢谢
回复 使用道具 举报
do{执行语句}while(条件表达式);while里面是要有条件的,否则的话就回提示非法表达式开始,顺带着:while(true)和for( ; ; )为死循环。。。{:soso_e113:}
回复 使用道具 举报
方法一:
循环,while(表达式)   表达式的值为 布尔类型的。 所以要在表达式上加上flag,

  • 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(flag);
  • Console.ReadKey();
  • 方法二://根据你编程的意思 也可以这样做:不需要定义BOOL型的标识是变量,简化一下:思路会更清晰一点,
  • int input;
  • do
  • {
  • try
  • {
  • Console.WriteLine("请输入一个数字");
  • input=Convert.ToInt32(Console.ReadLine());
  • Console.WriteLine("{0}的2倍是{1}",input,input*2);
  • }
  • catch
  • {
  • break;//当用户输入有误时,直接跳出循环!
  • }
  • }
  • while(true);//在输入无误的情况下,持续接收用户输入

回复 使用道具 举报
do While();的语法格式:  do {循环体} while(循环条件); 你的循环条件里面什么都没写~!
回复 使用道具 举报
while()里面必须要有循环条件
回复 使用道具 举报
第一个。。改下代码格试。。方便阅读

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 );

这样就可以了

回复 使用道具 举报
while()里面什么都没有当然错了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马