CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

新手问题 盼解答

楼主ysgx001(会飞的猪)2006-03-16 10:48:30 在 .NET技术 / C# 提问

 
  Console.Writeline("input   one   number!");  
  int   i=Convert.ToInt32(Console.ReadLine());  
  while(i<=10)  
  {  
  if(i==6)  
  Console.WriteLine(i++);  
  }  
   
  这段代码理解不了,运行以后,输入一个1,跟着显示   1   2   3   4   5     输入2   显示   2   3   4   5  
  输入3   显示3   4   5   输入4   显示   4   5       输入5显示5    
  输入6   无反映     输入7   显示   7   8   9   10  
  我是菜鸟   刚刚开始学   请高手帮忙解释一下   以上语句的意义  
  问题点数:20、回复次数:24Top

1 楼LixingTie(生铁)回复于 2006-03-16 10:59:18 得分 10

楼主是不是帖错代码了??这个循环进入后很明显是个死循环。Top

2 楼ysgx001(会飞的猪)回复于 2006-03-16 11:13:34 得分 0

我也不懂    
  就是不知道是什么意思,  
  书上代码是这样写的   我这样写也能运行    
  我在本地调试的时间    
  加goto了    
  能给我仔细讲讲吗?Top

3 楼songxiaozhao(雨朋)回复于 2006-03-16 11:19:52 得分 5

尽信书不如无书  
   
  Console.Writeline("input   one   number!");  
  int   i=Convert.ToInt32(Console.ReadLine());  
  while(i<=10)  
  {  
  if(i==6)  
  Console.WriteLine(i++);  
  }  
   
  这段代码很好懂的,就是说你输入一个数,如果是<10的数,就进入while,然后判断是否等于6  
  如果是,那输出为7Top

4 楼wangzhenyun_512(explorer)回复于 2006-03-16 11:21:19 得分 0

是啊,楼主,这是个死循环啊!!。。。。Top

5 楼LixingTie(生铁)回复于 2006-03-16 11:32:12 得分 0

songxiaozhao说的是错的  
   
  //在控制台中输出"input   one   number!"提示用户输入一个数。  
  Console.Writeline("input   one   number!");  
   
  //接收用户输入的一个数,转成整型后储存在i中.  
  int   i=Convert.ToInt32(Console.ReadLine());  
   
  //然后我来解释一下这个循环。  
  while(i<=10)  
  {  
  if(i==6)  
  Console.WriteLine(i++);  
  }  
   
  输入1   ->   1<=10   ->   进入循环   ->1==6为false    
  ->   跳过if结构   if(i==6)   Console.WriteLin(i++);   什么也不做进入一下次循环   ->   死循环  
   
  输入2,3,4,5时同上  
   
  输入6   ->   6<=10   ->   进入循环   ->   6==6为true  
  ->   进入if结构,在控制台中输出"6",然后i的值自加1  
  ->   i=7小于等于10,再次进入下一次循环   ->   7==6为false  
  ->跳过if结构   if(i==6)   Console.WriteLin(i++);   什么也不做进入一下次循环   ->   死循环Top

6 楼ysgx001(会飞的猪)回复于 2006-03-16 11:32:38 得分 0

那为什么我输入的数字小于6会显示出输入数的递增数  
  但是输入大于6   又会显示该数递增到10的几个数呢   就是这点我不懂~~Top

7 楼asdf311(Dark_Wanderer)回复于 2006-03-16 11:32:54 得分 5

错啦!!!  
  照楼主的说法,代码应如下  
   
  Console.Writeline("input   one   number!");  
  int   i=Convert.ToInt32(Console.ReadLine());  
  while(i<=10)  
  {  
          if(i==6)  
          {  
                  break;  
          }  
          else  
          {  
                  Console.WriteLine(i++);  
          }  
  }  
  Top

8 楼asdf311(Dark_Wanderer)回复于 2006-03-16 11:34:39 得分 0

楼主的代码看不懂!手边没C#环境,回去试试!  
   
  顶一个!Top

9 楼asdf311(Dark_Wanderer)回复于 2006-03-16 11:35:59 得分 0

ysgx001(会飞的猪)   (   )   信誉:100     2006-03-16   11:13:00     得分:   0      
     
     
        我也不懂    
  就是不知道是什么意思,  
  书上代码是这样写的   我这样写也能运行    
  我在本地调试的时间    
  加goto了    
  能给我仔细讲讲吗?  
       
   
   
   
  goto   加在哪了啊???  
     
  Top

10 楼itmingong(nous+wisdom+courage)回复于 2006-03-16 11:39:28 得分 0

楼主代码只有输入6的时候显示7,其余情况为死循环。Top

11 楼LixingTie(生铁)回复于 2006-03-16 11:55:10 得分 0

itmingong又错了楼主的代码输入6的时候会显示6然后死循环。  
   
  按楼主的说法代码应该是这样的。  
                  static   void   Main(string[]   args)  
                  {  
                          Console.WriteLine("input   one   number!");  
                          int   i   =   Convert.ToInt32(Console.ReadLine());  
                          while   (i   <=   10)  
                          {  
                                  if   (i   ==   6)  
                                          break;  
                                  Console.WriteLine(i++);  
                          }  
                  }  
  Top

12 楼ysgx001(会飞的猪)回复于 2006-03-16 11:59:02 得分 0

代码少写了  
  应该是  
  mu:Console.Writeline("input   one   number!");  
  int   i=Convert.ToInt32(Console.ReadLine());  
  while(i<=10)  
  {  
  if(i==6)  
  break;  
  Console.WriteLine(i++);  
  }  
  goto   mu;  
  Top

13 楼asdf311(Dark_Wanderer)回复于 2006-03-16 12:01:55 得分 0

着就对了嘛  
   
  小与10就进入循环  
   
  是6就退出  
   
  while(i<=10)  
  {  
      if(i==6)  
      {  
          break;  
      }  
      Console.WriteLine(i++);  
  }  
  这样能看懂了吧!Top

14 楼LixingTie(生铁)回复于 2006-03-16 12:02:35 得分 0

那个循环写成这样会好理解点。  
  while   (i   <=   10)  
  {  
        if   (i   ==   6)  
        {  
                break;  
        }  
        Console.WriteLine(i);  
        i   =   i+1;  
  }  
   
  问题应该解决了,结帖吧Top

15 楼ysgx001(会飞的猪)回复于 2006-03-16 12:05:11 得分 0

我还是迷迷糊糊的  
  输入小于6的数字他递增到5结束了  
  大于6小于10的数字递增到10结束  
  输入5   跟着显示5  
  输入6无反应  
  住要是这个地方理解不了   生铁能不能再给我讲讲?Top

16 楼asdf311(Dark_Wanderer)回复于 2006-03-16 12:05:21 得分 0

eg:       输入3->小于10->进入循环体->不等于6->输出4->小于10->继续循环->不等于6->输出5->==6->break   跳出循环->结束  
   
  eg2:     输入7->小于10->进入循环体->不等于6->输出7->小于10->继续循环->.....->输出9->==10->结束Top

17 楼asdf311(Dark_Wanderer)回复于 2006-03-16 12:07:42 得分 0

错拉  
   
  呵呵  
   
  eg:       输入3->小于10->进入循环体->不等于6->输出3->自增1->小于10->继续循环->不等于6->输出4->自增1->小于10->继续循环->不等于6->输出5->自增1->==6->break   跳出循环->结束  
   
  eg2:     输入7->小于10->进入循环体->不等于6->输出7->自增1->小于10->继续循环->.....->输出9->==10->结束  
  Top

18 楼ysgx001(会飞的猪)回复于 2006-03-16 12:37:20 得分 0

明白了   谢谢     一直迷糊到6以前的数字     忘了<=10的条件   呵呵  
  其实输入任何一个小于10的数字都会进入循环   小于6的循环到6结束  
  大于6的循环到10结束   输入6就是false    
  等于说是有两个条件   〈=10是一个大的条件     ==6是子条件Top

19 楼LixingTie(生铁)回复于 2006-03-16 14:54:04 得分 0

呵呵,看来已经解决了,那我也不再说了,记得结帖,及时结帖是个好习惯Top

20 楼LixingTie(生铁)回复于 2006-03-16 14:57:03 得分 0

对了,goto语句最好少用点。代码改成这样就不用goto了。  
   
  while(true)  
  {  
          Console.Writeline("input   one   number!");  
          int   i=Convert.ToInt32(Console.ReadLine());  
          while(i<=10)  
          {  
                  if(i==6)  
                          break;  
                  Console.WriteLine(i++);  
          }  
  }Top

21 楼ysgx001(会飞的猪)回复于 2006-03-17 13:27:47 得分 0

谢谢生铁     我忘了while比goto好用   呵呵Top

22 楼ysgx001(会飞的猪)回复于 2006-03-17 13:30:59 得分 0

怎么结帖?我把分给生铁了   不知道怎么点确定Top

23 楼liyufeng1983(小蜗牛)回复于 2006-03-17 23:19:30 得分 0

同意LixingTie(生铁)   说的,楼主你怎么运行的呀,不可能出现你说的情形的啊,输入6以外其他的数肯定都是没反应的,死循环!只有输入6才会有反应输出6.Top

24 楼ysgx001(会飞的猪)回复于 2006-03-17 23:24:48 得分 0

同意LixingTie(生铁)   说的,楼主你怎么运行的呀,不可能出现你说的情形的啊,输入6以外其他的数肯定都是没反应的,死循环!只有输入6才会有反应输出6.  
    大哥   只有输入6才没反应     输入1-4   都是递增到5    
  输入7-9   都返回的是输入数字的递增到10的数Top

相关问题

  • 急盼解答
  • 极盼解答~~~~
  • 基本知识,盼解答
  • cmdshell的报错,盼解答
  • 简单问题,盼望解答
  • 经常编译出错,急盼解答!
  • 菜鸟级问题,盼解答
  • 一个小问题,盼解答
  • 关于VC中Winsock的一个细节问题,盼解答.
  • 请教一个简单的问题。。。。。。?盼解答

关键词

  • 循环
  • 结构
  • 小于
  • 输出
  • 循环体
  • 输入
  • 进入
  • eg
  • 继续
  • console

得分解答快速导航

  • 帖主:ysgx001
  • LixingTie
  • songxiaozhao
  • asdf311

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo