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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© luoyang316 中级黑马   /  2014-4-20 23:00  /  1498 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 luoyang316 于 2014-4-21 11:58 编辑
  1. public class WhileTest01{
  2.         public static void main (String []args){
  3.                         
  4.                 int i =0;
  5.                 /*
  6.                 while(i<10){
  7.                         i++;
  8.                         System.out.println(i);//输出结果是1...10
  9.                                 }
  10.                         */
  11.                 while (i<10){
  12.                         System.out.println(i);
  13.                         i++;
  14.                         //输出结果是0。。9
  15.                         }
  16.                 }
  17.         
  18.         }
复制代码
为什么两个i++的位置不一样输出的结果就不一样,刚刚复习做前面的实验不太理解,那个大婶帮我看看

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 神马都是浮云

查看全部评分

11 个回复

正序浏览
路过 赞一个~
回复 使用道具 举报
i的初始化为0,一个打印输出在i++之前,肯定是0-9,当i=10时候,条件不满足退出了
第二个打印输出在i++之后,第一次循环时候,先执行一次i++算出i=1,然后循环直到i=10,条件不满足,跳出循环,所以输出的是1-10
回复 使用道具 举报
public class WhileTest01{
        public static void main (String []args){
                        
                int i =0;
                /*
                while(i<10){
                        i++;//这不很明显吗,程序每次进来都是先自加一然后才输出打印所以结果肯定是1到10了
                        System.out.println(i);//输出结果是1...10
                                }
                        */
                while (i<10){
                        System.out.println(i);
                        i++;;//这不很明显吗,程序每次进来都是先输出打印所以结果肯定是0到9了
                        //输出结果是0。。9
                        }
                }
        
        }
回复 使用道具 举报

嗯嗯,谢谢哈
回复 使用道具 举报
luoyang316 发表于 2014-4-21 00:02
是不是的上面一个输出是i++的结果,下面一个输出的应该是i的结果 对吗 哥们 ...

恩   就是这样
回复 使用道具 举报
程序爱好者 发表于 2014-4-20 23:53
public class WhileTest01{
        public static void main (String []args){
                        ...

是不是的上面一个输出是i++的结果,下面一个输出的应该是i的结果 对吗 哥们
回复 使用道具 举报
悠然丶 发表于 2014-4-20 23:29
你的输出语句一个在上面,一个在下面, 如果在同一位置不管是++i 还是i++ 结果是一样的 ...

i++ 和 ++i 这个我懂的 我刚刚那个写的是++1(这个是数字1)我不懂就是下面那个为什么先输出就是0到9  上面那个先++1 在输出我也懂
回复 使用道具 举报


public class WhileTest01{
        public static void main (String []args){
                        
                int i =0;
                /*
                while(i<10){      //当i=9的时候
                        i++;         //这里就是   i=9++;   
                                       //执行完 了就是i=10
                        System.out.println(i);//输出结果是1...10

                                }
                        */
                while (i<10){   //当i=9时
                        System.out.println(i);   i=9  所以输出9
                        i++;    //这里执行完后  i=10   不执行顺环了  所以没输出i=0
                        //输出结果是0。。9
                        }
                }
        
        }
回复 使用道具 举报
luoyang316 发表于 2014-4-20 23:19
就是一个是先++1 完了输出的是i++的结果,另外一个是就是直接输出i的结果 ?? ...

你的输出语句一个在上面,一个在下面, 如果在同一位置不管是++i 还是i++ 结果是一样的
回复 使用道具 举报
悠然丶 发表于 2014-4-20 23:08
public class WhileTest01{
        public static void main (String []args){
                        

就是一个是先++1 完了输出的是i++的结果,另外一个是就是直接输出i的结果 ??
回复 使用道具 举报
public class WhileTest01{
        public static void main (String []args){
                        
                int i =0;
                /*
                while(i<10){
                        i++;  //i初始值0,到这一步就是1了.
                        System.out.println(i);//所以输出结果是1...10
                                }
                        */
                while (i<10){
                        System.out.println(i);    //同样i初始值为0 直接就输了0
                        i++;             //第一次循环i为1了 ,下次输出就是1
                        //          所以输出结果是0。。9      你这题就是一个先打印和后打印的问题 很好理解
                        }
                }
        
        }

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马