0

私たちの先生はif-elseステートメントについて教えてくれました。彼はステートメントがどのようswitchに代替できるかについて教えてくれているので、if-elseコーディングしていると、この到達不能ステートメントエラーが発生します。Java を 6 から 8 に更新したばかりで、コードの何が問題なのかよくわかりません。

import java.io.*;
import java.util.Scanner;
class Switch
{
    public static void main(String[] args)
    {
        Scanner k = new Scanner(System.in);

        System.out.println("Whats your name?");
        String name = k.nextLine();

        System.out.println("Do you want to compute your grades?");
        String yesNo = k.nextLine();

        switch(yesNo)
        {
            case "yes":
                System.out.println("Input your attendance grade(10%)\n");
                int attendance = k.nextInt();
                System.out.println("Input your participation grade (10%)\n");
                int participation = k.nextInt();

                System.out.println("Input your quiz grade (10%)\n");
                int quiz = k.nextInt();

                System.out.println("Input your exam grade(40%)\n");
                int exam = k.nextInt();

                System.out.println("Input your lab grade (20%)\n");
                int lab = k.nextInt();

                double point10 = 0.10;
                double point20 = 0.20;
                double point40 = 0.40;

                double attendanceC = attendance*point10;
                double participationC = participation*point10;
                double quizC = quiz*point20;
                double examC = exam*point40;
                double labC = lab*point20;

                double yourGradeD = attendanceC+participationC+quizC+examC+labC;
                int yourGrade = (int)yourGradeD;
                break;

            default:
                System.out.println("Thank you "+name);
                break;

                switch(yourGrade)
                {
                    case 99|98|97|96|95|94|93|92|91|90:
                        System.out.println("testing");
                        break;
                }

        }

    }
}
4

1 に答える 1

0

正しいコードは次のとおりです。内部のスイッチは、内部に含まれていなかったため、実際には到達できませんでしたcase

caseここでは、最も論理的な「はい」に入れます。

注 :メイン スイッチには、「はい」または「デフォルト」の 2 つのオプションしかありません。この場合、単純な if...else を使用することをお勧めします

  switch(yesNo)
    {
        case "yes":
        System.out.println("Input your attendance grade(10%)\n");
        int attendance = k.nextInt();
        System.out.println("Input your participation grade (10%)\n");
        int participation = k.nextInt();

        System.out.println("Input your quiz grade (10%)\n");
        int quiz = k.nextInt();

        System.out.println("Input your exam grade(40%)\n");
        int exam = k.nextInt();

        System.out.println("Input your lab grade (20%)\n");
        int lab = k.nextInt();

        double point10 = 0.10;
        double point20 = 0.20;
        double point40 = 0.40;

        double attendanceC = attendance*point10;
        double participationC = participation*point10;
        double quizC = quiz*point20;
        double examC = exam*point40;
        double labC = lab*point20;

        double yourGradeD = attendanceC+participationC+quizC+examC+labC;
        int yourGrade = (int)yourGradeD;

        if(yourGrade >= 90 && yourGrade <= 99)
        {
            System.out.println("testing");
        }
        break;


        default:
        System.out.println("Thank you "+name);
        break;
    }
于 2015-10-04T12:23:41.903 に答える