Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi Leutz ich bin neu in dem Forum und bringe mir das Programmieren selber durch ein Buch mit dem Titel "Schrödinger programmiert Java" .
habe wohl ein Problem mit den Methoden, da kein Wert eingegeben werden kann es geht darum, dass ich bei jedem x beliebigen Buchstaben den ich eingebe der Wert um 6 erhöht wird und der Buchstabe der dann rauskommen soll ausgegeben wird: Beispiel: Du gibst den Buchstaben V ein und erhälst den Buchstaben B zurück. Dies soll mit jedem Buchstaben so passieren. Ich soll mit Char arbeiten und mit ANSI2 arbeiten, jedoch glaube ich, dass ich noch nicht ganz verstanden habe, warum ich die Tabelle benötige. Was mir direkt auffällt, dass der folgende code zwar richtig ist, es aber keinen wert zurück gibt. Kann mir jemand helfen?:
Java:
package de.buchstabendeklination.miguel.java;
import java.io.*;
public class Spiel {
public static void main (String [] args) throws IOException {
System.out.println("Herzlich Willkommen bei unserem Buchstaben- Spiel/nWenn du einen"
+ "Buchstaben einttippst wird dieser automatisch Plus 6 addiert!/nProbiere es aus");
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
String befehl;
while((befehl = eingabe.readLine()) != null) {
switch(befehl.toLowerCase()) {
case "V":
reihev();
break;
case "W":
reiheW();
break;
}
}
}
public static int reihev() {
char buchstabe ='V';
int rotation = +6;
int start = 'A';
buchstabe -= start;
buchstabe += rotation;
buchstabe %= 26;
buchstabe += start;
return buchstabe;
}
public static void reiheW() {
char buchstabe = 'W';
int rotation = +6;
int start = 'B' ;
buchstabe -= start;
buchstabe += rotation;
buchstabe %= 26;
buchstabe += start;
System.out.println(buchstabe);
}
}
Naja, vermutlich ist der Code dann doch nicht richtig.
Aber mal unabhängig davon:
Du rufts die Methoden "reiheV()" und "reiheW()" zwar auf, aber der zurück gegebene Wert (ein int) wird sofort verworfen.
Du brauchst also etwas wie:
int wert = reiheV(); oder System.out.println(reiheV());
Natürlich wäre es deutlich besser, deine Methode mit einem Parameter zu versehen, den du den eingegebenen Buchstaben übergeben kannst. Dann kannst du, wie von @Tobias-nrw gezeigt auf das switch-Statement verzichten. Allerdings kenne ich natürlich deinen aktuellen Wissenstand nicht.
Dennoch erscheint mir auch der Code innerhalb der Methode noch etwas unnötig umständlich.
vielen Dank für die Antworten werde ich morgen direkt probieren. Ja es könnte umständlich sein. Ich habe noch keine Schleifen gehabt und habe dies einfach abgeleitet. Ich finde es für den Anfang übersichtlicher. Das ist also typisch Anfängerfehler; ich dachte vielleicht sogar, dass ich in der Methode selbst den int Wert zurück geben muss. Kann mir jemand vielleicht an dieser Stelle die Nutzung des Ansi2 Codes erklären?