简体   繁体   中英

At first it said my output code was unreachable now it says there is an error. Can someone help me figure out where my error is?

If I delete the token it suggested I delete then I will have another error "code unreachable"

Here's my code:

public class finalgrade {

    public static void main(String[] args) 
    {
        // TODO Auto-generated method stub

        Scanner in = new Scanner(System.in);    //Input device scanner

        double n = 0.0;     //counter
        double m = 0.0;     //counter
        double x = 0.0;     //counter
        double y = 0.0;     //counter
        double s = 0.0;     //counter

        double totalgrade;

//input 

        String first_name;              //Holds first name 
        System.out.print("Enter your first name: ");
        first_name = in.next();

        String last_name;               //Holds last name 
        System.out.print("Enter your last name: ");
        last_name = in.next();

        String major;                   //Holds user's major
        System.out.print("Enter your intended major: ");
        major = in.next();

        String ist;                     //Holds user's class number
        System.out.print("Enter the IST class you are in: ");
        ist = in.next();

        //Holds user's number grade
        System.out.print("Enter one of five grades: ");
        n = in.nextDouble();

        //Holds user's number grade
        System.out.print("Enter another grade: ");
         m = in.nextDouble();

         //Holds user's number grade
         System.out.print ("Enter another grade: ");
         x = in.nextDouble();

         //Holds user's number grade
         System.out.print("Enter another grade: ");
         y = in.nextDouble();

         //Holds user's number grade
         System.out.print("Enter another grade: ");
         s = in.nextDouble();

//processes 

        totalgrade = n + m + x + y + s / 5;                 //determines the average of grades

         int gradePercent = (int)Math.round(totalgrade);    //converts double to integer

            String grade;
            switch (gradePercent/10)                        //converts integer to string
            {
            case 6 : grade = "D"; break;
            case 7 : grade = "C"; break;
            case 8 : grade = "B"; break;
            case 9 :grade = "A"; break;
            default: grade = "F"; break;


//output

    System.out.println("First Name: " + first_name + "Last Name: " + last_name + "Major: " + major + "IST Class: " + ist + "Average Grade: " + totalgrade+ "%" "Letter Grade: " + grade ".");

            }


    }}

**** Eclipse says remove "Letter Grade: " and ".", but when I remove it, it says unreachable.

Change

   int gradePercent = (int)Math.round(totalgrade);    //converts double to integer

        String grade;
        switch (gradePercent/10)                        //converts integer to string
        {
        case 6 : grade = "D"; break;
        case 7 : grade = "C"; break;
        case 8 : grade = "B"; break;
        case 9 :grade = "A"; break;
        default: grade = "F"; break;


 System.out.println("First Name: " + first_name + "Last Name: " + last_name + "Major: " + major + "IST Class: " + ist + "Average Grade: " + totalgrade+ "%" "Letter Grade: " + grade ".");
}

to be

    int gradePercent = (int)Math.round(totalgrade);    //converts double to integer

    String grade;
    switch (gradePercent/10) {                        //converts integer to string
        case 6 : grade = "D"; break;
        case 7 : grade = "C"; break;
        case 8 : grade = "B"; break;
        case 9 :grade = "A"; break;
        default: grade = "F"; break;
    }
    System.out.println("First Name: " + first_name + "Last Name: " + last_name + "Major: " + major + "IST Class: " + ist + "Average Grade: " + totalgrade+ "%" + "Letter Grade: " + grade ".");

This fixes the concatenation problem and the code being unreachable because in was inside the switch block.

You forgot to put an + before Letter Grade

And your System Out is inside the switch/case brackets.

//output
}
System.out.println("First Name: " + first_name + "Last Name: " + last_name + "Major: " + major + "IST Class: " + ist + "Average Grade: " + totalgrade+ "%" + "Letter Grade: " + grade ".");       
}}

在switch语句中,如果在所有情况(包括默认情况)遇到break语句后编写任何内容,则编译器将抱怨“无法执行的代码”

Please run this code. This runs well (tested in my pc) and i hope it will serve your purpose. Your mistakes were:

  1. closing brace of switch statement was put in wrong place (that's why the SOP statement got into the switch block).

  2. several concatenation mistakes in the SOP statement.

I have mentioned your mistakes in the respective section of the code.

public class finalgrade {

public static void main(String[] args) 
{
    // TODO Auto-generated method stub

    Scanner in = new Scanner(System.in);    //Input device scanner

    double n = 0.0;     //counter
    double m = 0.0;     //counter
    double x = 0.0;     //counter
    double y = 0.0;     //counter
    double s = 0.0;     //counter

    double totalgrade;

//input 

    String first_name;              //Holds first name 
    System.out.print("Enter your first name: ");
    first_name = in.next();

    String last_name;               //Holds last name 
    System.out.print("Enter your last name: ");
    last_name = in.next();

    String major;                   //Holds user's major
    System.out.print("Enter your intended major: ");
    major = in.next();

    String ist;                     //Holds user's class number
    System.out.print("Enter the IST class you are in: ");
    ist = in.next();

    //Holds user's number grade
    System.out.print("Enter one of five grades: ");
    n = in.nextDouble();

    //Holds user's number grade
    System.out.print("Enter another grade: ");
     m = in.nextDouble();

     //Holds user's number grade
     System.out.print ("Enter another grade: ");
     x = in.nextDouble();

     //Holds user's number grade
     System.out.print("Enter another grade: ");
     y = in.nextDouble();

     //Holds user's number grade
     System.out.print("Enter another grade: ");
     s = in.nextDouble();

//processes 

    totalgrade = n + m + x + y + s / 5;                 //determines the average of grades

     int gradePercent = (int)Math.round(totalgrade);    //converts double to integer

        String grade;
        switch (gradePercent/10)                        //converts integer to string
        {
        case 6 : grade = "D"; break;
        case 7 : grade = "C"; break;
        case 8 : grade = "B"; break;
        case 9 :grade = "A"; break;
        default: grade = "F"; break;
        }   //---------switch statement was not closed properly-------------

//output

System.out.println("First Name: " + first_name + "Last Name: " + last_name + "Major: " + major + "IST Class: " + ist + "Average Grade: " + totalgrade + "%" + "Letter Grade: " + grade + ".");

//---------several concatenation problems were in the SOP---------        


}}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM