Subtraktion nach Eingabe im Terminal

Lion.King

Aktives Mitglied
Hallo,

ich möchte in meinem Programm erreichen, dass bei einer Eingabe eines Alters von Hanisi, z.B. 100, dass das Programm die Zahl minus 1, also das Alter von Heinz angibt. Das ist mein bisheriger Code:

Java:
public class Alter{

     public static void main(String []args){
        input = Terminal.askInt("Alter: ");
        System.out.println("Als Hansi 2 Jahre alt war, war sein Bruder Heinz halb so alt. Gib Hansi aktuelles Alter ein, und erfahre wie alt Heinz jetzt ist.Heinz ist jetzt " + input-1 + " Jahre alt.");
     }
}

Ich möchte wissen, ob es ausreicht, einfach in der Ausgabe input-1 zu haben, oder ob ich an meinem Code noch was ändern muss.
Ich wäre für jede Hilfe sehr dankbar.
 
Als erstes: Hast Du das einfach einmal ausprobiert? Wenn du so Code übersetzt, dann sagt Dir der Compiler schon, ob es von Code her in Ordnung ist. Und wenn der Compiler nicht meckert, dann kannst Du es ausführen und dann kannst Du ja sehen, ob das richtige Ergebnis heraus kommt.

Das, was Du da an Code hast, ist erst einmal nicht in Ordnung. Der Compiler wird meckern, denn der - Operator ist für einen String nicht definiert.

Java wertet so Ausdrücke von Links nach Rechts aus. Das bedeutet, er wird zuerst dein String mit input "addiert". Dabei kommt wieder ein String raus. Dieser String soll jetzt bei - 1 verwendet werden und das geht halt nicht. (Operator '-' cannot be applied to String, int)

Du willst also, dass dieser Ausdruck in einer anderen Reihenfolge ausgewertet wird. Es soll erst die Subtraktion statt finden. Und das geht genau so, wie in der Mathematik durch Klammern. Also es müssten um input -1 einfache Klammern: ... + (input - 1) + ...
 
Es kann input nicht finden, wie in der Fehleranzeige angezeigt:

/Alter.java:4: error: cannot find symbol
input = Terminal.askInt("Alter: ");
^
symbol: variable input
location: class Alter
/Alter.java:4: error: cannot find symbol
input = Terminal.askInt("Alter: ");
^
symbol: variable Terminal
location: class Alter
/Alter.java:5: error: cannot find symbol
System.out.println("Als Hansi 2 Jahre alt war, war sein Bruder Heinz halb so alt. Gib Hansi aktuelles Alter ein, und erfahre wie alt Heinz jetzt ist.Heinz ist jetzt " + (input-1) + " Jahre alt.");
^
symbol: variable input
location: class Alter
3 errors

Wie definiere ich den input? etwa mit int?
 
Ist es jetzt besser ? :

Java:
public class Alter{

     public static void main(String []args){
        input = Terminal.askInt("Alter: ");
        int Alter = input - 1;
        System.out.println("Als Hansi 2 Jahre alt war, war sein Bruder Heinz halb so alt. Gib Hansi aktuelles Alter ein, und erfahre wie alt Heinz jetzt ist.Heinz ist jetzt " + Alter + " Jahre alt.");
     }
}

Hier wird dann nur noch als das als Fehler angezeigt:

./Alter.java:4: error: cannot find symbol↩
input = Terminal.askInt("Alter: ");↩
^↩
symbol: variable input↩
location: class Alter↩
 
Die Variabel Input muss natürlich auch deklariert werden. Also einfach ein int davor würde reichen. Die zweite Variable ist nicht notwendig.
 

Neue Themen


Zurück
Oben