Erste Schritte Korrektheit, (String[] args)

peithomitho

Mitglied
Hallo erstmal,

ich bin kompletter Java Anfänger und Forum-Neuling und stecke bei folgender Aufgabe leider fest. Für kleine Tipps, Links, Anregungen, wäre ich sehr dankbar.

Ich benutze den Compiler: Ideone.com - Online Compiler and IDE >> C/C++, Java, PHP, Python, Perl and 40+ other compilers and interpreters

Folgender Code ist gegeben:
Java:
public static void main(String[] args)
 { int A = 12, B = 24; int x = A, y = B; while(x > 0){ y = y+1; x = x-1; } 
System.out.println("Das Ergebnis ist " + y); }

Die Aufgabe lautet:
1. Was wird hier berechnet?
2. Bei welchen Werten von A und B treten fehler auf?
3. Wie sieht die Ausgabe bei fehlerhaften Daten aus?


Meine Ansätze:
1. ich komme auf 36. Meine Vermutung ist: es wird quasi (12-1)+(24+1) gerechnet ? Aber warum steht dann bei unserer Ausgabe nur "blah Ergebnis" +y ? Ist es weil wir ein "String [] args" Haben und es quasi ein Array ist, welcher dann die Elemente nacheinander durchgeht, also A, dann B und diese dann addiert? (weil im Ergebnis +y steht )
PS: Ich habe eine public class main{} erstellt und dann dort das obige eingefügt, der compiler gibt mir 36 aus. Zeigt jedoch auch den Fehler "Standard input is empty" - was bedeutet das, kann mir da jemand helfen?

Zu 2. Fehler nur für A = 1 ?, weil unsere while Schleife nur für x > 0 läuft? (ich habe A = 0 und A = 1 gesetzt und bekomme trotzdem Ergebnisse.....spinnt die while Schleife?

3. Egal was ich einsetze, ich bekomme kein fehlerhaftes Ergebnis.


Ich versuche das ganze noch in BlueJ einzupacken. Das benutzen wir nämlich für sonstige Aufgaben.

Danke, für alle die sich die Mühe machen das durchzulesen. Ich bitte meine wirren anfänger Gedanken zu entschuldigen :)


Liebe Grüße
 
Zuletzt bearbeitet:

peithomitho

Mitglied
Ist meine Fragestellung so unklar?
Ich wäre auch für Links, kleine Tipps etc. dankbar :)

public static void ist mir soweit klar. dann folgt String Array vom Typ arguments (?) und alles danach, kann ich nicht so wirklich einordnen..... ich weiß was integer ist, int A = 12, würde ich als String A intepretieren und eben int wert 12....aber warum wird bei A kleiner 0 kein Fehler ausgegeben?
 

Saheeda

Top Contributor
Ich versuche mal, deine Fragen zu beantworten.

public static void main(String[]args){} ist der Haupteinstiegspunkt deines Programms. Diese Methode hat als Parameter ein Array vom Typ String mit Namen "args". Gibts du bei Programmstart noch irgendwelche Werte mit, so werden die in diesem Array gespeichert und können abgerufen werde.

int A ist kein String, sondern ein Integer mit dem Wert 12. Schau dir nochmal die verschiedene Datentypen an.


Gegenfrage: Warum sollte bei A<0 ein Fehler ausgegeben werden?
In dem Fall wird einfach die Schleife nicht durchlaufen.
 
Zuletzt bearbeitet:

peithomitho

Mitglied
@Saheeda jap, das war mir klar, das String[] args habe ich so nur noch nie gesehen und sah so nach...elfisch aus.

Urghahaha da habe ich totalen Mist gebaut. Also, um das oben zu verbessern:

Ist A=0, dann wird die Schleife nicht durchlaufen und das Ergebnis ist Y also B = 24.
Für jedes A größer gleich 1, ist das Ergebnis A*1+B. Wobei mir die -1 bei x=x-1 gerade nichts sagt. Aber hej. Rumprobiert und zu dem Schluß gekommen: verändern wir das y=y+1 zu einem y=y+z ist das Ergebnis immer A*z+B.

Die zweite Frage...nun da ich ja jetzt weiß ein negatives A ergibt keinen "Fehler", bei einem neg. B macht das auch keinen Sinn. Vll. ist damit einfach sowas gemeint wie, für Werte die kein integer Typ sind. Also 12.5 usw.

Und drei wäre dann....äääh ich krieg keine Ausgabe.

Naja sobald mir da was einigermaßen akzeptables einfällt, gebe ich bescheid. Wenigstens weiß ich jetzt das da oben passiert ist.
 

Neue Themen


Oben