日期:2014-05-20  浏览次数:20778 次

这个到底错在哪呢?
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();

        }
    }
}