3
public static void accept_name( String[] name, int[] r)
{

   InputStreamReader isr = new InputStreamReader(System.in);
   BufferedReader ab = new BufferedReader(isr);
    r = new int[40];
    name = new String[40];
    for(int i=0;i<40;i++)
    {
        System.out.println("Enter the name of students");
        name[i] = ab.readLine();
    }             
}

我在 name[i] = ab.readLine(); 中遇到问题

我不明白问题是什么。

4

5 回答 5

0

实际上,如果您将鼠标悬停在错误行上,那里的消息会说明一切。

这是一个编译时错误。要求exception处理。在执行该行时,有机会获得IOException.

因此,您必须handle通过输入method签名或将其捕捉到那里来实现它。

将您的方法更改为

public static void accept_name( String[] name, int[] r)
    {

       InputStreamReader isr = new InputStreamReader(System.in);
       BufferedReader ab = new BufferedReader(isr);
        r = new int[40];
        name = new String[40];
        for(int i=0;i<40;i++)
        {
            System.out.println("Enter the name of students");
            try {
                name[i] = ab.readLine();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }             
    }

强烈推荐的概念

于 2013-06-01T06:03:42.773 回答
0

您在函数参数中获取名称数组为什么要再次初始化它?下面不需要

name = new String[40];
r = new int[40];

你的代码必须是

public static void accept_name( String[] name, int[] r)
{

   InputStreamReader isr = new InputStreamReader(System.in);
   BufferedReader ab = new BufferedReader(isr);
    for(int i=0;i<40;i++)
    {
        System.out.println("Enter the name of students");
        try {
            name[i] = ab.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }             
}

然后你可以把你的函数称为

String[] name = new String[40];
//populate your name array
int[] r = new int[40];
//populate your r array
ClassName.accept_name(name,r);//Static function

我也看不到你在哪里使用 r。

于 2013-06-01T06:08:23.423 回答
0

Readline 抛出一个 IOException,所以你应该捕获它或重新抛出它。

public static void accept_name(String[] name, int[] r) throws IOException {
 [...]
}

卡罗

于 2013-06-01T06:10:44.987 回答
0

当使用 Input\Output 流时,需要一个IOException,定义它可能会抛出这种异常:

public static void accept_name (String[] name, int[] r) throws IOException
{
   InputStreamReader isr = new InputStreamReader(System.in);
   BufferedReader ab = new BufferedReader(isr);

    r = new int[40];
    name = new String[40];

    for(int i=0;i<40;i++)
    {
        System.out.println("Enter the name of students");
        name[i] = ab.readLine();
    }             
}
于 2013-06-01T06:15:42.680 回答
0

你可以试试这个...

    public static void accept_name( String[] name, int[] r)
    {

       name = new String[40];
       for(int i=0;i<40;i++)
       {
            try {
                  InputStreamReader isr = new InputStreamReader(System.in);
                  BufferedReader ab = new BufferedReader(isr);
                  System.out.println("Enter the name of students");
                  name[i] = ab.readLine();
                  ab.close();
            } catch (IOException e) {
                  e.printStackTrace();
            }
       }             
    }
于 2013-06-01T06:21:43.830 回答