array auslesen

SiDeu

Aktives Mitglied
Hallo liebe Leut ich bin das erste mal hier und hoffe ich mache alles richtig!
Mein Problem besteht darin das ich die falschenbuchstaben irgendwie nicht auslesen kann ;( M oder W funktioniert einwandfrei!

Java:
			do {
			while (true) {
				try {
					Eingabe3 = JOptionPane.showInputDialog("Geschlecht" + "\n"
							+ "M" + " " + "für" + " " + "Männlich" + "\n" + "W"
							+ " " + "für" + " " + "Weiblich");

					if (Eingabe3 == null)
						System.exit(0);

					else if (Eingabe3.length() > 1)
						JOptionPane.showMessageDialog(null,
								"Nur ein Zeichen eingeben !");

					else if (Eingabe3.equals("M"))
						Geschlecht = "Männlich";

					else if (Eingabe3.equals("W"))
						Geschlecht = "Weiblich";
					break;
				} catch (Exception e) {
					System.out.println("Das war kein Geschlecht!");
					JOptionPane.showMessageDialog(null,
							"Das war kein Geschlecht!");
				}

			}

			if (falscheBuchstaben(Eingabe3)) {
				falscheBuchstaben = true;
			}

			else {
				System.out.println("Kann nicht sein");
				JOptionPane
						.showMessageDialog(null, "Kann " + " nicht " + "sein");
			}
		} while (falscheBuchstaben == false);

		if (Geschlecht.equals("Männlich"))
			BMI = Gewicht / (Größe * Größe);

		if (Geschlecht.equals("Weiblich"))
			BMI = Gewicht / (Größe * Größe) + 2;

		if (BMI < 18.5)
			Ergebnis = "Sie sind Zu dünn Sie sind";
		if (BMI < 23.5)
			Ergebnis = "Sie sind Normal Sie sind";
		if (BMI < 28)
			Ergebnis = "Sie haben Übergewicht Sie sind";
		if (BMI > 28)
			Ergebnis = "Sie sind Viel zu dick Sie sind";

		System.out.println(Ergebnis + "\n" + Geschlecht + "\n" + "BMI" + " "
				+ "=" + " " + BMI);

		JOptionPane.showMessageDialog(null, Ergebnis + "\n" + Geschlecht + "\n"
				+ "BMI" + " " + "=" + " " + BMI);
	}

	private static boolean falscheBuchstaben(String Eingabe3) {

		if (Eingabe3.equals("M")) {
			return true;
		}
		if (Eingabe3.equals("W")) {
			return true;
		}

		String[] falscheBuchstaben = { "a", "b", "c", "d", "e", "f", "g", "h",
				"i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
				"u", "v", "w", "x", "y", "z" };
		for (int i = 0; i < falscheBuchstaben.length; i++) {
			if (falscheBuchstaben[i] == Eingabe3) {
				return false;
			}

		}
		return true;
	}
Die genaue Berechnung für den BMI der Frauen stimmt natürlich nicht aber das war mir auch nicht wichtig ich bedanke mich schon mal im voraus! 😀
 
http://www.java-forum.org/top-fragen/1350-vergleichen-strings.html
Das mal lesen und dann noch einmal auf die Zeile ~75 schauen 🙂

Danke für die schnelle Antwort hat mir sofort geholfen! ich verstehe nur nicht warum es hier funktioniert hat

Java:
	public static boolean checkWurf(int AktuellePunkte) {
		if (AktuellePunkte > 60) {
			return false;
		}
		int[] zahlen = { 23, 25, 29, 31, 37, 41, 43, 47, 49, 53, 55, 59 };
		for (int i = 0; i < zahlen.length; i++) {
			if (zahlen[i] == AktuellePunkte) {
				return false;
			}

		}
		return true;
	}
}


und hier nicht

Java:
		String[] falscheBuchstaben = {"a", "b", "c", "d", "e", "f", "g", "h",
				"i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
				"u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "X", "Y", "Z" };
		for (int i = 0; i < falscheBuchstaben.length; i++) {
			if (falscheBuchstaben[i].equals(Eingabe3)) {
				return false;
			}

		}
		return true;
	}

}

Beim Dartspiel gings mit ==
Beim BMI rechner mit equals

wäre echt nett wenn mir das jemand beantworten könnte!
ich weis == ist objecktvergleich
equals ist wertevergleich
 
im ersten Schnipsel vergleichst du ints miteinander, das sind keine Objekte sondern primitive Datentypen. Die werden mit == verglichen.
Im zweiten Schnipsel vergleichst du Strings, das sind Objekte. Da musst du equals verwenden.


ich weis == ist objecktvergleich
equals ist wertevergleich
Das ist falsch oder falsch ausgedrückt.
Code:
==
vergleicht die Identität.
Code:
equals
prüft die Gleichheit.
 
Code:
int
sind primitive Datentypen in Java => Vergleich mit [c]==[/c] funktionieren.

Code:
String
sind Objekte in Java, die mit einer Methode ([c]equals(Object o)[/c]) verglichen werden
 
[OT]was macht das break und catch nach weiblich da?
booleans nicht mit == mit booleans vergleichen
Code:
while(! falscheBuchstaben)
booleans direkt zuweisen
Code:
falscheBuchstaben = falscheBuchstaben(Eingabe3)
klammer deine if () {} then {} else {}, auch wenn da nur eine aktion folgt
Variablen in lowerCamelCase
Code:
eingabe3, geschlecht
[/OT]
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben