| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 809 人关注过本帖
标题:关于输入的问题?(已解决)
只看楼主 加入收藏
he20041987
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-9-10
结帖率:100%
收藏
 问题点数:0 回复次数:3 
关于输入的问题?(已解决)
import *;
import java.util.Random;


class Rnd{
    public static void main(String[] args){
        int i,j,k;
        Random rnd1=new Random();
        Random rnd2=new Random();
        
        try{
            while(true){
                System.out.print("请输入一个字符(Y/N):");//这里怎么会执行三次了
                char ch=(char)System.in.read();
                if(ch=='y'){
                    System.out.println(rnd1.nextInt()+" "+rnd2.nextInt());
                }
                if(ch=='n'){
                    System.exit(-1);
                }
            }
        }catch(Exception e){
                e.printStackTrace();
        }
    }
}
请教一下这个程序 第一行怎么会运行三次后再输入勒?()

[[it] 本帖最后由 he20041987 于 2008-3-29 18:01 编辑 [/it]]
搜索更多相关主题的帖子: Random System java import 
2008-03-28 17:39
帅浪
Rank: 1
等 级:新手上路
威 望:1
帖 子:139
专家分:0
注 册:2007-4-4
收藏
得分:0 
回复 1# 的帖子
import *;
import java.util.Random;


class Rnd{
    public static void main(String[] args){
        int i,j,k;
        Random rnd1=new Random();
        Random rnd2=new Random();
        
        try{
            while(true){
                System.out.print("请输入一个字符(Y/N):");//这里怎么会执行三次了
                char ch=(char)System.in.read();
                if(ch=='y'){
                    System.out.println(rnd1.nextInt()+" "+rnd2.nextInt());
                }
                if(ch=='n'){ //原因出在这里吧,它没有退出循环,改成if(ch!='y')
                             //就不会出现这种情况了!
                    System.exit(-1);
                }
            }
        }catch(Exception e){
                e.printStackTrace();
        }
    }
}

世上事有难易乎?为之?则难者亦易矣;不为,则易者亦难矣
2008-03-28 20:29
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
in.read();
从此输入流中读取下一个数据字节。返回一个 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有字节可用,则返回 -1。在输入数据可用、检测到流末尾或抛出异常之前,此方法将一直阻塞。

在循环中,char ch=(char)System.in.read();
如:输入'k'回车
这就等于输入了二个字符
read()先读第一个'k'
再读第二个'\r'(回车符)
最后第三个'\n'()(已经到达流末尾,返回-1)

在C中,可用fflush(stdin);来清除缓冲区.
java用什么,我也不知道-_-!
照二楼的方法暂时可以解决,虽然这不是你的理想结果.
2008-03-29 17:59
he20041987
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-9-10
收藏
得分:0 
呵呵  谢谢各位了?我知道了其实我实际是输入了三次才循环了三次的,问题现在解决了。
2008-03-29 18:01
快速回复:关于输入的问题?(已解决)
数据加载中...
 
   



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

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