标题:While do 输出问题
只看楼主
yuhu
Rank: 1
来 自:河南
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-8-29
结帖率:100%
已结贴  问题点数:5 回复次数:5 
While do 输出问题

public class WhileDo
{
    public static void main(String[] args)
    {
        int x = 5;
        while(x<10)
        {
            System.out.print("hello");
            //x = x+2;为何注释掉此行没有任何输出结果,不是应该无限次输出吗
        }
    }
}
搜索更多相关主题的帖子: public 
2014-11-03 22:30
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:2 
你都没有用system.out.println来输出x。

x初始化为5,在循环体里面只会执行3遍,while条件决定了不会有无限次数

思考赐予新生,时间在于定义
2014-11-04 08:21
dzh151360980
Rank: 2
来 自:上海
等 级:论坛游民
威 望:1
帖 子:68
专家分:46
注 册:2014-9-24
得分:2 
若要无限循环,可将while(x<10)换成while(true)即可无限循环。

Java程序员的每一天都很精彩,哈哈!
2014-11-04 10:28
yuhu
Rank: 1
来 自:河南
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-8-29
得分:0 
回复 2 楼 love 云彩
1.while条件为真就应该执行do的内容,条件一直为真就应该无限执行
2.既是把hello换成x也没有任何输出内容
3.我的条件是注释掉x = x +2的,不注释掉当然可以运行,我就不明白为啥注释掉就运行不了,为啥do的内容注释一半,另一半也不能运行了
2014-11-04 21:35
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:0 
不知道你想要问什么,我把我能想到的都跟你说一遍。
程序代码:
public class WhileDo 
{
    public static void main(String[] args)
    {
        int x = 5;
        while(x<10)
        {
            System.out.print("hello");
            x = x+2;
        }
    }
}
//输出结果:
/*

 * hello

 * hello

 * hello

 */
//解释:x=5,5<10,满足条件,输出hello。
//执行x=x+2;x=7,7<10,满足条件,输出hello。
//执行x=x+2;x=9,9<10,满足条件,输出hello。
//执行x=x+2,x=11,11不小于10,不满足条件,退出循环。

/*

 *第二个程序是实现无限循环

 */
public class WhileDo 
{
    public static void main(String[] args)
    {
        int x = 5;
        while(true)//true为无限循环的条件
        {
            System.out.print("hello");
            x = x+2;
            System.out.println(x);//此处输出x的值
        }
    }
}

思考赐予新生,时间在于定义
2014-11-04 21:54
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
得分:0 
程序代码:
public class WhileDo {
    public static void main(String[] args) {
        int x = 5;
        while (x < 10) {
            System.out.print("hello");
            System.out.print("\n");
        }
    }
}


首先,原来的程序就是无限循环的,这点可以用Debug的方式确认。
其次,虽然无限循环,但是却好像没有任何输出?原因是没有进行flush处理,所以没有显示到屏幕上来。
按照上面修改后的代码,就能看到无限个hello输出到屏幕上来了。

为什么加上System.out.print("\n");就能产生自动flush的效果,请参考下面的文章:
http://blog.
2014-11-05 21:02



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




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

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