新手问题 盼解答
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




