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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在做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
,这里面的区别在哪里?

8 个回复

倒序浏览

希望能帮到你~
回复 使用道具 举报
278008379 来自手机 中级黑马 2016-3-14 12:57:57
藤椅
重复的那个数是不是答应的接收录入的那个y?
回复 使用道具 举报
278008379 发表于 2016-3-14 12:57
重复的那个数是不是答应的接收录入的那个y?

恩恩 就是那个y的,按照上面楼上的改了下确实能实现从输入的那个y开始到1的数据。但还是有点不清楚的。
回复 使用道具 举报

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

嗯呢,就是那个y的 z=y  (int y=sc.nextInt();我输入的数据是)和z=5,有什么区别呢?

点评

最前面那个不是你输出的,而是你键盘录入的明白吗?  发表于 2016-3-15 17:53
回复 使用道具 举报
这个名字也有宇 发表于 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:11
你之前不说 输入 5 输出为 5 5 4 3 2 1 吗?其实不是两个5~
第一个5 是你自己输入的,他的输出结果其实是 ...

恩恩 谢谢了  刚弄明白了,我键盘录入的那个数无论后面有没有其他程序,都会输出这个数的。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马