Derzeit bin ich ein Student, der anfängt, Java zu lernen. Ich kenne Arrays oder komplexe Methoden nicht. Mein Lehrer möchte, dass wir es so machen, um die involvierte Logik zu verstehen, also kann ich keine eingebaute Sortierfunktion verwenden. Manchmal funktioniert mein Code. Zum Beispiel, wenn ich "iea" eingabe, druckt es "aei", was korrekt ist. Aber manchmal, wenn ich Eingaben wie "abc" zum Beispiel eintrage, druckt es einfach "c" als den mittleren Wert aus. Hilfe? Ich bin ein Anfänger. Sortieren drei Buchstaben alphabetisch
import java.util.*;
public class SortThreeLetters {
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
char largest = ' ';
char middle = ' ';
char min = ' ';
String word;
System.out.println("Enter three lower case letters: ");
word = sc.nextLine();
char letter1 = word.charAt(0);
char letter2 = word.charAt(1);
char letter3 = word.charAt(2);
if (letter1 > letter2 && letter1 > letter3){
largest = letter1;
if(letter2 > letter3){
middle = letter2;
min=letter3;
}
else if (letter3>letter2){
middle = letter3;
min=letter2;
}
}
else if (letter2 > letter1 && letter2 > letter3){
largest = letter2;
if(letter3>letter1){
letter3=middle;
letter1=min;
}
else if (letter1>letter3){
letter1 = middle;
letter3 = min;
}
}
else if (letter3 > letter1 && letter3 > letter2){
largest = letter3;
if(letter2>letter1){
letter2 = middle;
letter1 = min;
}
else if (letter1>letter2){
letter1 = middle;
letter2 = min;
}
}
System.out.println(min+""+middle+""+largest);
}
}
Sie setzen "später" und "am größten" später nicht, wenn. 'letter1 = min;' ist nicht dasselbe wie 'min = letter1;' –
Versuchen Sie es in Schritten - finden Sie das kleinste der ersten zwei und dann das kleinste Ihres Ergebnisses und den dritten Buchstaben - es wird Ihnen leichter fallen Folge dem Programm auf diese Weise. – TDG