当前位置: 代码迷 >> Java相关 >> 这个到底错在哪呢?解决思路
  详细解决方案

这个到底错在哪呢?解决思路

热度:5358   发布时间:2013-02-25 21:47:55.0
这个到底错在哪呢?
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class e {
public static void main(String args[]){
try{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=BufferedReader(isr);

//给出提示
System.out.println("请输入一个数");
//从控制台读取一行数据
int a=br.read();

}catch(Exception e)
{
e.printStackTrace();

}
for (int i=0;i<a;i++)
{
System.out.println("你好,世界");
}
  }
}


我想从键盘上输入一个数值,然后传递给FOR循环 再输出。。。我不知道错在哪了



------解决方案--------------------------------------------------------
有3个错误:
1) BufferedReader br=BufferedReader(isr); 改成
BufferedReader br= new BufferedReader(isr); 

2) for(...){}放到try{}内部去,否则整数a都可能未被定义

3)int a=br.read();这里获得的是输入的数字的内码,而不是数字本身,比如改成
int a=br.read()-0x30;才会是你想要的结果

Java code
import java.io.BufferedReader;import java.io.InputStreamReader;public class e {    public static void main(String args[]){        try{            InputStreamReader isr=new InputStreamReader(System.in);            BufferedReader br= new BufferedReader(isr);            //给出提示            System.out.println("请输入一个数");            //从控制台读取一行数据            int a=br.read()-0x30;            for (int i=0;i<a;i++)            {                System.out.println("你好,世界");            }        }catch(Exception e)        {            e.printStackTrace();        }    }}
  相关解决方案