黑马程序员技术交流社区

标题: for 循环的遇到的一个问题 [打印本页]

作者: 这个名字也有宇    时间: 2016-3-14 12:26
标题: for 循环的遇到的一个问题
在做for循环例子的时候,(列出10-1)
int y;
for (y=10;y>=1;y--){
System.out.println(y);}
这里直接将10赋值给y输出是 10 9 8 7 6 5 4 3 2 1
这里我想和键盘录入的例子合用起来,成了,键盘输入一个整数,列出从这个整数-1.

int y=sc.nextInt();
int z;
for (z=y;z>=1;z--){
System.out.println(z);
当输入y=10,结果输出的是10 10 9 8 7 6 5 4 3 2 1
无论我输入是多少,最后都会多出一个它。
eg:s输入6  结果是6 6 5 4 3 2 1
,这里面的区别在哪里?


作者: 神祈灬丨狂想曲    时间: 2016-3-14 12:40

希望能帮到你~
作者: 278008379    时间: 2016-3-14 12:57
重复的那个数是不是答应的接收录入的那个y?
作者: 这个名字也有宇    时间: 2016-3-14 14:50
278008379 发表于 2016-3-14 12:57
重复的那个数是不是答应的接收录入的那个y?

恩恩 就是那个y的,按照上面楼上的改了下确实能实现从输入的那个y开始到1的数据。但还是有点不清楚的。
作者: 这个名字也有宇    时间: 2016-3-14 14:55
神祈灬丨狂想曲 发表于 2016-3-14 12:40
希望能帮到你~

谢谢您了,按照您说的,输出确实没错的。就是还是有点不明白,比如我输入的数据为y=5,按照程序走下去,那么z=5,z>=1为true,执行System.out.println(z),z--,z=4。。。。。这里如果是z=y-1,的话执行的时候不应该是z=4?  显示的第一位不应该的??这个直接定义z=5的区别在哪里呢??是是程序执行的步骤我弄错了?
作者: 这个名字也有宇    时间: 2016-3-14 14:56
278008379 发表于 2016-3-14 12:57
重复的那个数是不是答应的接收录入的那个y?

嗯呢,就是那个y的 z=y  (int y=sc.nextInt();我输入的数据是)和z=5,有什么区别呢?
作者: 神祈灬丨狂想曲    时间: 2016-3-14 15:11
这个名字也有宇 发表于 2016-3-14 14:55
谢谢您了,按照您说的,输出确实没错的。就是还是有点不明白,比如我输入的数据为y=5,按照程序走下去,那 ...

你之前不说 输入 5 输出为 5 5 4 3 2 1 吗?其实不是两个5~
第一个5 是你自己输入的,他的输出结果其实是5 4 3 2 1
让x = y - 1,就是让他从4开始循环,不输出5
作者: 这个名字也有宇    时间: 2016-3-14 15:40
神祈灬丨狂想曲 发表于 2016-3-14 15:11
你之前不说 输入 5 输出为 5 5 4 3 2 1 吗?其实不是两个5~
第一个5 是你自己输入的,他的输出结果其实是 ...

恩恩 谢谢了  刚弄明白了,我键盘录入的那个数无论后面有没有其他程序,都会输出这个数的。。




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