-2

一个简单的java程序,输入学生姓名,求他获得的三门科目的平均分

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


class MyException extends Exception
{

    MyException(String s)
    {
        super(s);
    }
}

class Student 
{
    String name;

    String inputName()
    {
        return name;
    }

    void average(int [] a)
    {
        int d;

        if ((a.length)==3)
        {
            d = (a[0]+a[1]+a[2])/3;
            if (d>50)
                System.out.println(" Congratulations!!! "+name+ " 
                        you have passed the examination");
            else
            System.out.println(" Oops  " +name+"  Try Later!!");
        }
    }

public static void main(String x[]) throws IOException
{
    Student s= new Student();
    int args[] =new int[3];
    System.out.println("Enter name of the student:");
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    s.name=br.readLine();
    System.out.println("Name of the student is " +s.inputName().trim());
    System.out.println("Marks in Physics = ");
    args[0]=Integer.parseInt(br.readLine().trim());
    System.out.println("Marks in Chemistry = ");
    args[1]=Integer.parseInt(br.readLine().trim());
    System.out.println("Marks in Mathematics = ");
    args[2]=Integer.parseInt(br.readLine().trim());**$$**
    s.average(args);**##**
}
}

代码没有错误。代码一直执行到$$ step,但是##指示的step没有执行。不知道为什么??

4

1 回答 1

2

以下是测试运行的输出:

输入学生姓名:
你好
学生的名字是你好
物理分数 =
52
化学分数 =
52
数学分数 =
52
 恭喜!!!你通过了考试

因此,该方法实际上正在执行,但是您没有看到任何输出的原因是,就像其他人指出的那样,不满足以下条件

if (d > 51)

此外,添加 else 部分也很好,如下所示:

if (d > 51)  {
    System.out.println("Congratulations!!! you have passed the examination");
} else {
    System.out.println("Sorry!!! you have failed the examination");
}
于 2012-06-17T15:32:16.260 回答