Wie kann ich eine switch () - Anweisung zu konvertieren aus einem Zahlenwert zu einem Buchstaben grade?

Dies IST KEINE Hausaufgabe, aber es ist eine Praxis, die der Lehrer gab uns zu helfen, für eine Prüfung lernen. Aber ich werde nicht drehen diese in den Lehrer. (ich hoffe, dass ist erlaubt)

Er will ein Benutzer zur Eingabe einer Klasse und haben es mit Buchstaben Grad. Wäre es einfach mit if-Anweisungen, aber ich kann nicht mit JEDEM! Ich habe die Verwendung der switch-Methode.

Hier ist meine funktionale Klasse:

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;

 }

}

Hier ist meine test-Klasse:

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);
 }

}

Ich noch nicht Programmieren genug, um diese analytischen Verstand. Ich HABE versucht, es zu vollenden, habe ich einfach nicht gefunden, einen Weg, um verdeckte der Benutzer-Eingang (int) in einem Brief Note (string) ohne if-Anweisungen.

Ich weiß, das ist unvollständig, aber das ist so weit wie ich gehen konnte, ohne Fehler zu machen.

EDIT:WOW! Danke Jungs, ich hasse es zu Holen, eine einzige richtige Antwort, weil viele von Euch mir geholfen haben!!

Dies ist, was ich am Ende mit (das klappte :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;

}
  • Hausaufgaben ist zulässig, obwohl in der Regel es ist schön, wenn Menschen tag es als solche. Oder sogar schreiben, die Frage in einer Weise, die Ihnen zeigt, haben darüber nachzudenken, anstatt nur copy/paste die Frage aus Ihrer übung.
  • Amen zu dem, was Matthew sagte. +1 für die Mühe, auch wenn ich oft Hausaufgaben Fragen weniger als akzeptabel.
  • Wow. Sie haben zu lieben, willkürliche Regeln wie "Sie müssen verwenden Sie eine switch-Anweisung". Dass wirklich spiegelt die Reale Welt. Ich meine, wäre es nicht besser gewesen, wenn der Lehrer kam eigentlich mit einer Frage, die mehr geeignet, um tatsächlich mit einer switch-Anweisung. Ich meine, Sie könnte wahrscheinlich schreiben ein Lösung mit nur while-Schleifen, aber Sie würde nie.
  • Auch, Phil, ist ein weiterer wichtiger Punkt des Lernens, hier ist Mathe zu lernen!!!. Die Analyse der Lösung ist ziemlich einfach, mit einem gewissen Grad von der diskreten Mathematik wissen, und diese Klasse (wie auch ein paar andere Mathe lieben), sollte an der Spitze Ihrer Klasse Liste.
  • Ja, ich denke mathematisch hatte ich es noch richtig ursprünglich, aber es wurde ein wenig screwy mit allen updates und änderungen
  • Muss ich dis-Stimmen. es ist eine gute "nicht-triviale" übung für lernen zu wechseln. Es ist nicht 100% einfach, es hat >1-Lösung, und es fördert das, was der OP als "analytischen Verstand" statt cookie-cutter-copy/paste-Programmierung
  • Ich erzielte 100% und habe eine F 🙁
  • haha vielen Dank Jack 😀 Hinzugefügt, Fall 10 = A. ich bin KEIN Programmierer!!
  • Lektion #N aus: Lesen Sie ALLE Ihre Daten 🙂 Verschachtelt in der Mitte von meinem Kleingedruckte in der Antwort war: "abgesehen von 100" Formulierung 🙂 im Ernst, wenn Sie lernen, zahlen sehr sorgfältig (OCD-Ebene), die Aufmerksamkeit auf details, werden Sie eine Größenordnung besser-Entwickler langfristig. Die Hälfte der Arbeit besteht darin, jede knifflige detail.
  • Nicht der compiler optimieren den switch in if-else Aussagen überhaupt?
  • Tatsächlich, es wird wahrscheinlich optimieren Sie die switch in eine jump-Tabelle. Aber das ist völlig nebensächlich - es ist eine übung, wie jemand beibringen zu lösen, eine leicht nicht-orthodoxe problem UND zu wechseln.
  • Ist es nur mir so, oder funktioniert der code oben muss ein break nach letterGrade = "D"; Linie?
  • Es braucht eine break nach letterGrade = "D"; haben sollte und man nach letterGrade = "F" für einfache Lesen/Bearbeiten.
  • Jungs, das war vor 4 Jahren, geben Sie ihm einen rest

Schreibe einen Kommentar