Как я могу использовать оператор switch () для преобразования числовых значений в буквенные? - PullRequest
7 голосов
/ 08 октября 2009

Это НЕ домашнее задание, но это практика, которую учитель дал нам, чтобы помочь подготовиться к тесту. Но я не буду передавать это учителю. (я надеюсь, что это разрешено)

Он хочет, чтобы пользователь ввел оценку и присвоил ей буквенную оценку. Было бы легко с if заявлениями, но я не могу использовать ЛЮБОЙ! Я должен использовать метод переключения.

Вот мой функциональный класс:

public class Grade {

public double getGrade(int input)
 {
  double inputGrade;
  switch(input)
  {
   case 1: inputGrade >= 90;
       break;
   case 2: inputGrade >= 80;
       break;
   case 3: inputGrade >= 70;
       break;
   default:
       grade = 60;
  }
  return grade;

 }

}

Вот мой тестовый класс:

import java.util.*;
public class TestGrade
{
 public static void main(String[] args)
 {
  Scanner scan = new Scanner(System.in);
  int input = scan.nextInt();
  Grade lGrade = new Grade();
  double finalGrade = lGrade.getGradeSwitch(input);
  System.out.println("Your toll is $" + finalGrade);
 }

}

Я просто недостаточно программировал, чтобы иметь этот аналитический ум. Я пытался завершить его, я просто не нашел способ преобразовать пользовательский ввод (int) в буквенную оценку (строку) без операторов if.

Я знаю, что это неполно, но это настолько далеко, насколько я мог бы сделать, не делая ошибок.

EDIT: WOW! Спасибо, ребята, я не хочу выбирать один правильный ответ, потому что многие из вас помогли мне!

Это то, чем я закончил (это сработало: D)

public String getGrade(int input)
{
    String letterGrade;
    switch(input/10)
    {
        case 9: letterGrade = "A";
                  break;
        case 8: letterGrade = "B";
                  break;
        case 7: letterGrade = "C";
                  break;
        case 6: letterGrade = "D";
        default:
                  letterGrade = "F";
    }
    return letterGrade;

}

Ответы [ 12 ]

0 голосов
/ 08 октября 2009

сделать это исправление

  double grade; // i think you mispelled it inputGrade

и

   case 1: grade = 90; // inputGrade >= 90 is an expression and is not valid
       break;
0 голосов
/ 08 октября 2009

Вот отправная точка: символ «A», как целое число, имеет значение 65. Как вы думаете, что произойдет, если вы преобразуете значение 66 в символ?

...