义乌装备博览会:帮我解决问题吧,我刚学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
这是什么原因呢?
原程序是: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);
}
}