Frage zur Java-Programmierung |
Willkommen, Gast ( Anmelden | Registrierung )
Frage zur Java-Programmierung |
01.10.2006, 12:01
Beitrag
#1
|
|
Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Ich habe eine Frage, wie kann ich eine zwei If-Überprüfung in eine If-Andwendung.
Soweit bin schon, aber mir fehlt der Operator zur Verbindung der zwei Abfragen: if(ausdruck1 ausdruck2) -------------------- |
|
|
Gast_skep_* |
01.10.2006, 12:16
Beitrag
#2
|
Gäste |
&& oder || je nach Abfrage
|
|
|
01.10.2006, 12:51
Beitrag
#3
|
|
Threadersteller Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Das Programm funktioniert immer noch richtig, vielleicht kannst du mir eine Tipp geben:
QUELLTEXT import java.util.Scanner; public class Rabatt { public static void main (String[] args) { double einzahlung; System.out.print("Bitte geben Anzahlung ein: "); Scanner sc = new Scanner(System.in); einzahlung = sc.nextDouble(); if(einzahlung>10000 || einzahlung<=100000) System.out.println(3 / 100 * einzahlung); else if(einzahlung >100000) System.out.println(5 / 100 * einzahlung); } } -------------------- |
|
|
Gast_skep_* |
01.10.2006, 13:13
Beitrag
#4
|
Gäste |
In der ersten if-Abfrage sollte das doch eher ein && sein, oder? Da ja sonst der erste Test (einzahlung>10000) die zweite if-Abfrage quasi redundant macht.
|
|
|
01.10.2006, 13:26
Beitrag
#5
|
|
Gehört zum Inventar Gruppe: Freunde Beiträge: 3.252 Mitglied seit: 21.04.2003 Mitglieds-Nr.: 51 |
Du hast Einzahlung als Double gemacht aber rechnest mit int Werten. Versuch mal 1000.0 etc...
Ausserdem was genau funktioniert nicht so wie gewünscht? ~edit~ In der zweiten If Abfrage ist eine 0 zuviel. - Bei der Initialisierung von einzahlung hast du das "= 0.0" vergessen - Erste if würde ich wie folgt machen: if(einzahlung >=1000.0 && einzahlung <= 10000.0) ... zweite if(einzahlung >10000.0) Und es fehlt eine Ausgabe auf dem Bildschirm, oder bist noch nicht so weit? QUELLTEXT import java.util.Scanner; public class Rabatt { public static void main (String[] args) { double einzahlung = 0.0; System.out.print("Bitte geben Anzahlung ein: "); Scanner sc = new Scanner(System.in); einzahlung = sc.nextDouble(); if(einzahlung>=1000.0 && einzahlung<=10000.0) System.out.println(3 / 100 * einzahlung); else if(einzahlung >10000.0) System.out.println(5 / 100 * einzahlung); } } Lucky Der Beitrag wurde von Lucky bearbeitet: 01.10.2006, 13:36 |
|
|
Gast_2cool_* |
01.10.2006, 13:36
Beitrag
#6
|
Gäste |
QUELLTEXT einzahlung>10000 || einzahlung<=100000 shortcut Evaluierung: http://www.linguistik.uni-erlangen.de/~arv....html#ixa100349 Wurde ja auch schon erklärt, sobald die erste Bedingung wahr ist, wird nicht weiter geprüft. Ausserdem ist es von der Aufgabestellung her ein logisches UND, "im Bereich zwischen 10000 und einschliesslich 100000". Der Beitrag wurde von 2cool bearbeitet: 01.10.2006, 13:39 |
|
|
01.10.2006, 13:40
Beitrag
#7
|
|
Gehört zum Inventar Gruppe: Freunde Beiträge: 3.252 Mitglied seit: 21.04.2003 Mitglieds-Nr.: 51 |
Aus welcher Aufgabenstellung holt ihr euch die 10000 und 100000?
Ich sehe nur 1000 und 10000. Lucky |
|
|
01.10.2006, 13:42
Beitrag
#8
|
|
Threadersteller Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Habe das jetzt so geändert:
if(einzahlung>10000 && einzahlung<=100000) System.out.println(3 / 100 * einzahlung); Er rechnet auch wenn z.B. 10001 eingeben bekomme ich aber immer 0.0 raus. und wenn ich 10001.1 eingebe bekomme ich folgende Fehlermeldung: Der Beitrag wurde von Kool_Savas bearbeitet: 01.10.2006, 13:42 -------------------- |
|
|
Gast_2cool_* |
01.10.2006, 13:44
Beitrag
#9
|
Gäste |
ZITAT(Lucky @ 01.10.2006, 14:39) [snapback]168118[/snapback] Ich sehe nur 1000 und 10000. Stimmt. ZITAT(Kool_Savas @ 01.10.2006, 14:41) [snapback]168119[/snapback] if(einzahlung>10000 && einzahlung<=100000) System.out.println(3 / 100 * einzahlung); Versuch das mal: ZITAT if(einzahlung>10000 && einzahlung<=100000) System.out.println(3.0 / 100 * einzahlung);
Der Beitrag wurde von 2cool bearbeitet: 01.10.2006, 13:45 |
|
|
01.10.2006, 13:51
Beitrag
#10
|
|
Threadersteller Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Danke jetzt funktioniert es.
-------------------- |
|
|
01.10.2006, 14:25
Beitrag
#11
|
|
Threadersteller Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Bin etwas weiter:
QUELLTEXT import static java.lang.Math.*; public class Maximum { public static double max(double ersteZahl, double zweiteZahl) { ersteZahl = 14.5; zweiteZahl = 7.3; } } Was muss ich bei System.out.println() in den Klammern eintragen damit ich mir den Max Wert von Oben ausgibt? Der Beitrag wurde von Kool_Savas bearbeitet: 01.10.2006, 14:54 -------------------- |
|
|
01.10.2006, 15:31
Beitrag
#12
|
|
Threadersteller Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Verdammt jetzt stehe ich auf dem Schlauch:
QUELLTEXT import static java.lang.Math.*; public class Maximum { public static double max(double ersteZahl, double zweiteZahl) { ersteZahl = 14.5; zweiteZahl = 7.3; return (max(zweiteZahl,ersteZahl) ); } } -------------------- |
|
|
01.10.2006, 15:42
Beitrag
#13
|
|
Womanizer Gruppe: Freunde Beiträge: 3.798 Mitglied seit: 05.05.2004 Mitglieds-Nr.: 765 |
Möchtest du die Klasse direkt aufrufen können, muss sie eine main-Methode haben. Das ginge dann so:
QUELLTEXT public class Maximum { public static void main(String[] args) { double ersteZahl = 14.5; double zweiteZahl = 7.3; System.out.print( Math.max( ersteZahl, zweiteZahl ) ); } } Willst du selbst eine max-Methode schreiben und nicht die von Math nutzen, ist dein bisheriges Vorgehen gar nicht so übel, aber: - Vergleich der Zahlen zählt. Lege diesen in einer neuen Variable result ab. - Belege nicht die Variablen in deiner Methode mit einem Wert, wenn du sie doch der Methode als Parameter übergeben möchtest. - Lies Doku! Schau dir Beispiele an! Java ist keine Insel ist nicht schlecht für den Einstieg. -------------------- |
|
|
01.10.2006, 16:15
Beitrag
#14
|
|
Threadersteller Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Buch wird gleich bestellt.
Das ist die Aufgabe dazu: Der Beitrag wurde von Kool_Savas bearbeitet: 01.10.2006, 16:30 -------------------- |
|
|
Gast_skep_* |
01.10.2006, 16:27
Beitrag
#15
|
Gäste |
Das Buch gibts umsonst einsehbar im Internet:
http://www.galileocomputing.de/openbook/javainsel5/ |
|
|
Gast_2cool_* |
01.10.2006, 17:07
Beitrag
#16
|
Gäste |
Mit den If-Operator sollte ein Selbstgänger sein, der Fragezeichenoperator ist dem If-Operator sehr ähnlich, liefert aber zusätzlich einen Rückgabewert:
(der in diesem Beispiel dann von "return" weiterverwendet wird) return (a > b) ? a : b ; Bedeutet, ist die Bedingung wahr, gebe den ersten Wert (also den Wert von a), ansonsten (wenn die Bedingung falsch ist) den Wert nach dem Doppelpunkt zurück. Der Beitrag wurde von 2cool bearbeitet: 01.10.2006, 17:12 |
|
|
01.10.2006, 17:20
Beitrag
#17
|
|
Threadersteller Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Danke für euer Hilfe.
Der Beitrag wurde von Kool_Savas bearbeitet: 01.10.2006, 17:24 -------------------- |
|
|
04.10.2006, 17:59
Beitrag
#18
|
|
Threadersteller Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Das Buch habe jetzt.
Sie hat gestaunt das ich mit der Max-Funktion benutzt habe. -------------------- |
|
|
02.11.2006, 14:49
Beitrag
#19
|
|
Threadersteller Feuerteufel Gruppe: Mitglieder Beiträge: 2.228 Mitglied seit: 22.08.2004 Mitglieds-Nr.: 1.348 |
Ich habe eine Frage,
wie kann diese Aufgabe lösen, dass alle Arrays angezeigt Ich darf nur if und if/each einsetzen QUELLTEXT public class Aufgabe11b { public static void main (String[] args) { int [][] matrix = {{1, 0, 1, 5},{8, 7, 2, 4},{1, 3, 3, 7},{0, 3, 0, 7},}; for(int i = 0; i < matrix.length; i++) { System.out.println(matrix[i][i]); } } } Der Beitrag wurde von Kool_Savas bearbeitet: 02.11.2006, 14:50 -------------------- |
|
|
02.11.2006, 16:06
Beitrag
#20
|
|
Womanizer Gruppe: Freunde Beiträge: 3.798 Mitglied seit: 05.05.2004 Mitglieds-Nr.: 765 |
Die äußere for-Schleife geht das Array durch. Und für jeden Index wird dann wiederum das zu jenem Index gehörenden Array über die innere for-Schleife durchlaufen.
QUELLTEXT public class Aufgabe11b
{ public static void main (String[] args) { int [][] matrix = {{1, 0, 1, 5},{8, 7, 2, 4},{1, 3, 3, 7},{0, 3, 0, 7},}; for( int i = 0; i < matrix.length; i++ ){ for( int j = 0; j < matrix[ i ].length; j++){ System.out.println( matrix[i][j] ); } } } } -------------------- |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 14.05.2024, 21:49 |