我用system.in.read()读入int类型数据,好像不正确,比如我输入100打出来是49次,代码如下:
public class Machine extends Thread{
int init;
Machine(int init){
this.init=init;
}
public void set(int data){init=data;} public void run(){
for(int a=0;a<init;a++)
System.out.println(currentThread().getName()+":"+a);
} public static void main(String args[])throws Exception{
int b=100;
Machine machine=new Machine(b);
machine.start();
int data=(int)System.in.read();
machine.set(data);
machine.run();
}
}
public class Machine extends Thread{
int init;
Machine(int init){
this.init=init;
}
public void set(int data){init=data;} public void run(){
for(int a=0;a<init;a++)
System.out.println(currentThread().getName()+":"+a);
} public static void main(String args[])throws Exception{
int b=100;
Machine machine=new Machine(b);
machine.start();
int data=(int)System.in.read();
machine.set(data);
machine.run();
}
}
楼主【topcs】截止到2008-07-12 16:01:19的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:20 每贴平均分数:20
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:1 结贴的总分数:20
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
Machine machine=new Machine(b);
和
int data=(int)System.in.read();
machine.set(data);
都是对Machine.init设置值,干吗要设置两遍?
data得到的并不是你输入的值,比如你输入100,它读取的是1,data是1的ascall码,也就是说不管你输入的是1xxxxx多少,他都是49,明白了吗?
data的值的范围在0-255 或者 -1,具体可以查看java doc
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int data = Integer.parseInt(br.readLine());