标题:关于输入的问题?(已解决)
只看楼主
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



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




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

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