标题:很简单的一个输出问题
只看楼主
不落夕阳
Rank: 2
等 级:论坛游民
帖 子:64
专家分:30
注 册:2016-10-13
结帖率:69.57%
已结贴  问题点数:20 回复次数:4 
很简单的一个输出问题
public class A1{
    public static void main(String args[]){
        String output="";
        int i;
        for(i=1;i<=10;i++){
            if(i==5){
                continue;
            }
            output+=i+" ";
        }
        output+="\nUsing continue to skip printing 5";
        output+="\ni="+i;
        System.out.println(output);
    }
}
输出如下:
1 2 3 4 6 7 8 9 10
Using continue to skip printing 5
i=11
问题:system.out.println(output)应该只输出i=11,为什么还会输出“1234678910”和“Using continue to skip printing 5”。求解谢谢
搜索更多相关主题的帖子: printing continue public 
2016-11-21 20:29
JavaJack
Rank: 2
来 自:YunNan
等 级:论坛游民
帖 子:24
专家分:26
注 册:2016-11-16
得分:5 
你定义的output是String型
字符串的内容一旦声明将不会更改!只会改变栈内存对堆内存的引用
output+=i+" ";相当于第一次循环是1,第二次循环是1 2 ,第三次1 2 3...以此类推
output+="\nUsing continue to skip printing 5";相当于再在你for循环里面产生的output数据基础上又加上了这段字符串
public class A1{
     public static void main(String args[]){
         String output="";
         int i;
         for(i=1;i<=10;i++){
             if(i==5){
                 continue;
             }
             output+=i+" ";
         }
         System.out.println(output);                //输出此时的output
         System.out.println("---------------------------------");[/color]
         output+="\nUsing continue to skip printing 5";
    System.out.println(output);                //输出此时的output
    System.out.println("---------------------------------");
         output+="\ni="+i;                            //输出再次修改后的output
         System.out.println(output);
     }
 }

在上面几个位置加上这样的输出代码,可以很清楚的看出不同时刻output的内容为
1 2 3 4 6 7 8 9 10
---------------------------------
1 2 3 4 6 7 8 9 10
Using continue to skip printing 5
---------------------------------
1 2 3 4 6 7 8 9 10
Using continue to skip printing 5
i=11

希望对楼主有帮助!我也是名新手!很抱歉没能看出楼主程序所要达到的目的,不能更进一步交流
2016-11-21 21:53
learnJava
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:38
注 册:2016-11-18
得分:5 
楼主不明白最后的输出结果怎么来的?建议使用调试工具,可以看到程序每一步执行的结果。如果不想调试,可以借鉴2楼的方式 在每个变量可能存在改变的地方打印出来(这种方式在写小程序的时候要常用,跟项目的时候项目会有要求打日志。),也能看到程序执行的流程。如果程序复杂点,经常用打印,你查起错误来会很快。
2016-11-22 12:25
qwe885167759
Rank: 4
等 级:业余侠客
威 望:5
帖 子:148
专家分:259
注 册:2013-3-12
得分:5 
这个java中对+这个符号进行了重载,它的意思是字符串的连接,就是两个字符串连接成一个

我本楚狂人,凤歌笑孔丘
2016-11-26 23:08
GrayJerry
Rank: 5Rank: 5
等 级:贵宾
威 望:14
帖 子:75
专家分:310
注 册:2015-10-20
得分:5 
output += "1"; 是指:output = output + "1";
2016-11-28 16:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-471430-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.251614 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved