Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Java Problem

LatinBaby - 37
Halbprofi (offline)

Dabei seit 06.2008
140 Beiträge
Geschrieben am: 15.10.2009 um 15:28 Uhr
Zuletzt editiert am: 02.11.2009 um 22:13 Uhr

Guten Morgen/Abend.

So, ich mal wieder. Tut mir leid, dass ich für solche kleinen Sachen immer einen Thread erstelle, aber ich komme oftmals einfach nicht weiter. :(

Und zwar habe ich ein Problem mit dem Restoperator von Java.

int a = 76, b = 37, c;
System.out.println(c = b % a * 9); //333
System.out.println("26%7 = " + 26%7 ); //5
System.out.println("7%26 = " + 7%26 ); //7

Ich bin mir zwar bewusst, wie die 5 zu Stande kommt, (Eben wegen dem Rest, wie der Operatorname schon sagt. :D), aber wie kommt man auf die 333 bzw. die 7? Bin mathematisch einfach unbegabt.
Kann mir die Schritte vllt jemand erklären?

Danke
h3mpti - 38
Profi (offline)

Dabei seit 05.2007
878 Beiträge

Geschrieben am: 15.10.2009 um 15:36 Uhr

Zitat von LatinBaby:

Guten Morgen/Abend.

So, ich mal wieder. Tut mir leid, dass ich für solche kleinen Sachen immer einen Thread erstelle, aber ich komme oftmals einfach nicht weiter. :(

Und zwar habe ich ein Problem mit dem Restoperator von Java.

int a = 76, b = 37, c;
System.out.println(c = b % a * 9); //333
System.out.println("26%7 = " + 26%7 ); //5
System.out.println("7%26 = " + 7%26 ); //7

Ich bin mir zwar bewusst, wie die 5 zu Stande kommt, (Eben wegen dem Rest, wie der Operatorname schon sagt. :D), aber wie kommt man auf die 333 bzw. die 7? Bin mathematisch einfach unbegabt.
Kann mir die Schritte vllt jemand erklären?

Danke

Naja, 7 / 26 ist 0 Rest 7, sollte eigentlich klar sein ;-)
Beim anderen hat Modulo eine stärkere Bindung als *, d.h. 37 / 76 ist 0 Rest 37, und das mal 9 gibt 333.
---Tobi - 39
Profi (offline)

Dabei seit 10.2004
445 Beiträge

Geschrieben am: 15.10.2009 um 15:40 Uhr

37 modulo 67 = 37 da 37/67 = 0 rest 37
37 * 9 = 333

bei 7 modulo 26 das gleiche
7/26 = 0 rest 7
LatinBaby - 37
Halbprofi (offline)

Dabei seit 06.2008
140 Beiträge
Geschrieben am: 16.10.2009 um 17:30 Uhr

Und noch mal ich...

Erst Mal danke für die Hilfen...hatte angenommen, dass die Rechnung arbeitet auch mit Gleitkommezahlen...deshalb das Unverständnis.

Habe aber noch eine Frage:

Die int-Variable x habe den Wert 5. Die folgende Anweisung führt dennoch nicht zu einer Division durch 0. Warum?

if(x != 5 && 1.0 / (x – 5) > 0)
y = 1;


Kann mir das auch wer erklären?! Ich meine..immerhin ist eine Division durch 0 ja nicht möglich, aber an Hand der Fragestellung gehe ich stark davon aus, dass das gar nicht gefragt wird. :)
Danke
h3mpti - 38
Profi (offline)

Dabei seit 05.2007
878 Beiträge

Geschrieben am: 16.10.2009 um 17:38 Uhr

Im ersten Term wird Abgefragt, ob x != 5 ist, da der Term schon nicht zutrifft und die beiden Terme über ein UND verknüpft sind, wird der zweite Term an dieser Stelle nichtmehr berücksichtigt.
LatinBaby - 37
Halbprofi (offline)

Dabei seit 06.2008
140 Beiträge
Geschrieben am: 16.10.2009 um 17:50 Uhr

Dachte ich auch.

Aber die if Anweisung wird dennoch durchgeführt...Da die Division ja eine höhere Prioritätsanweisung hat, als die Zuweisung (oder nicht?!) wird die Division auf jeden Fall ausgeführt.
Da die Durch 0 Division allerdings nicht möglich ist, ist dann die Frage: Warum die Ifanweisung dennoch ausgeführt wird...

Habs gerade mal mit Eclipse gemacht und ein System.out.println gesetzt, anstelle der Zuweisung für das y und diese wird ausgegeben?!
pogorausch - 38
Champion (offline)

Dabei seit 09.2005
2593 Beiträge

Geschrieben am: 16.10.2009 um 17:57 Uhr

Das ist der Unterschied zwischen „&“ und „&&“.
Bei „&“ werden beide Seiten ausgewertet und dann der Operator angewendet. Bei „&&“ wird erst nur die linke Seite ausgewertet und wenn die schon false ergibt, die rechte Seite gar nicht angeschaut, weil das Ergebnis ja schon feststeht.

Vegan warrior for life, so FUCK THE LAW!

LatinBaby - 37
Halbprofi (offline)

Dabei seit 06.2008
140 Beiträge
Geschrieben am: 16.10.2009 um 17:59 Uhr

Ja hmmm...danke erst Mal...

Aber dann bleibt eben noch die Frage...warum wird die If Anweisung dennoch gemacht, wenn sie schon bei der ersten Auswertung false ergibt...das macht mir nämlich das größte Verständigungsproblem...
h3mpti - 38
Profi (offline)

Dabei seit 05.2007
878 Beiträge

Geschrieben am: 16.10.2009 um 18:02 Uhr

dann würde ich mal eher auf einen Syntax-Fehler tippen.
Ist die Variable x wirklich als Integer deklariert? oder vielleicht doch als Gleitkommazahl?
pogorausch - 38
Champion (offline)

Dabei seit 09.2005
2593 Beiträge

Geschrieben am: 16.10.2009 um 18:03 Uhr
Zuletzt editiert am: 16.10.2009 um 18:03 Uhr

Zitat von LatinBaby:

Ja hmmm...danke erst Mal...

Aber dann bleibt eben noch die Frage...warum wird die If Anweisung dennoch gemacht, wenn sie schon bei der ersten Auswertung false ergibt...das macht mir nämlich das größte Verständigungsproblem...

Das darf eigentlich nicht vorkommen. Vielleicht ein Semikolon zu viel? Hinter dem „if“?

Vegan warrior for life, so FUCK THE LAW!

LatinBaby - 37
Halbprofi (offline)

Dabei seit 06.2008
140 Beiträge
Geschrieben am: 16.10.2009 um 18:08 Uhr

Okay ja das stimmt...sorry...war meine Schuld...

Trotzdem danke ihr zwei :-)
LatinBaby - 37
Halbprofi (offline)

Dabei seit 06.2008
140 Beiträge
Geschrieben am: 02.11.2009 um 22:15 Uhr

So hallo...

Wieder ich.
Und zwar eine Frage....

Welcher Fehler steckt hinter dieser Schleife.

int i = 1;
while(i <= 5);
{
System.out.println(i);
i++;
}

Überlege schon die ganze Zeit, aber ich komme irgendwie nicht dahinter.
Danke sehr :)
Thulsadoom - 36
Champion (offline)

Dabei seit 01.2006
2051 Beiträge

Geschrieben am: 02.11.2009 um 22:38 Uhr
Zuletzt editiert am: 02.11.2009 um 22:43 Uhr

Zitat von LatinBaby:

So hallo...

Wieder ich.
Und zwar eine Frage....

Welcher Fehler steckt hinter dieser Schleife.

int i = 1;
while(i <= 5);
{
System.out.println(i);
i++;
}

Überlege schon die ganze Zeit, aber ich komme irgendwie nicht dahinter.
Danke sehr :)


was isn die fehlermeldung?

so aufn ersten blick würd ich sagen entweder ne geschweifte klammer oder semikolon, aber nich beides setzen...

edit: ich hab das semikolon hinter while weggelassen und es funktioniert wunderbar.

Warum? Weil ich es kann!

LatinBaby - 37
Halbprofi (offline)

Dabei seit 06.2008
140 Beiträge
Geschrieben am: 02.11.2009 um 22:41 Uhr

ohhh man..jetzt seh ichs...das Semikolon hinter der While Anweisung...was ist nur los mit mir...:-(

Danke schön :)
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -