义乌装备博览会:帮我解决问题吧,我刚学java,可是,输出的却与输入不同啊

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/03 15:19:48
指点小弟一下吧!

原程序是:import java.io.*;

public class sum{
public static void main(String[] agrs)throws Exception{
int sum=0;
System.out.println("请输入数字:");
int kk= System.in.read();
System.out.println(kk);
for(int i=0;i<kk;i++){
sum+=i;
}
System.out.println("输出结果是:"+sum);
}
}
运行输出显示:
请输入数字:15
49
输出结果是:1176

请输入数字:14
49
输出结果是:1176

这是什么原因呢?

System.in.read()返回的是键盘输入的一个键的十进制值

也就是说程序只读了 1 的十进制值---49 赋值给kk

想用读取键盘输入必须构建
1。输入流 System.in;
2。字符输入流 InputStreamReader
3。缓存输入流 BufferedReader
4。缓存输入流方法 readLine()//中文意思:读一行(遇上enter键)
代码:BufferedReader keyInC=new BufferedReader(new InputStreamReader(System.in));

完整程序是:
import java.io.*;
public class sum{
public static void main(String[] agrs)throws Exception{

BufferedReader keyInC=new BufferedReader(new InputStreamReader(System.in));//构建 字符输入流缓存区 keyInC

int sum=0;
System.out.println("请输入数字:");
int kk= Integer.parseInt(keyInC.readLine()); //改动过了转成int类型
System.out.println(kk);
for(int i=0;i<kk;i++){
sum+=i;
}
System.out.println("输出结果是:"+sum);
}
}