-2

生徒の名前を入力し、生徒が取得した 3 つの科目の平均点を求める簡単な 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);**##**
}
}

コードにエラーはありません。コードは$$ステップまで実行されていますが、##で示されるステップは実行されていません。理由がわかりません??

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 に答える