# Java -> Quadratzahlen 1 bis 200.



## figuerro (30. Aug 2009)

hey leute.. 
ich hab hiern problem mit einer übung unserer hausaufgabe.
ich hab erst seit vier stunden java (informatik lk)
und ich bin nich besondersn gut darin.
hier die aufgabenstellung:
Übungen zur While-Schleife (Konsolenausgabe)
Schreiben sie ein Programm, dass alle Quadratzahlen von 1 bis 200 ausgibt.

mein bisheriger versuch:


```
public class Übung2 {

  public static void main(String[] args) {
    int i = 1; int e;
    while ( i <= 200 ){
      e = i * i;
      System.out.println(e);
      i++;
    }
  }
}
```

problem: er soll ja nur bis 200 gehen!
mein fehler ist das die bedingung nur für i gilt, aber sie eigentlich für e gelten sollte.
aber wnen ich es dann wieder umstelle :


```
public class Übung2 {

  public static void main(String[] args) {
    int i = 1; int e;
    while ( e <= 200 ){
      e = i * i;
      System.out.println();
      i++;
    }
  }
}
```
dann taucht der fehler hier auf
Übung2.java:13:13: variable e might not have been initialized
    while ( e <= 200 ){
               ^
1 error
wenn ich dann "int e " in die bedingung einsetze dann kommen noch mehr fehler..
was ist da falsch?

vielen dank im vorraus für die antworten..
mfg figuerro


----------



## madboy (30. Aug 2009)

Du musst e initialisieren. Womit ist in deinem Fall egal, so lange e <= 200 ;-)
also:

```
int i = 0; 
int e = 0;
```

edit: als ich schrieb "e <= 200", meinte ich eigentlich "e <199"... Aber 0 passt auf jeden Fall


----------



## figuerro (30. Aug 2009)

oh gott bin ich doof...
vielen vielen dank!

ok..
jetzt steck ich in ner zweiten stelle fest xD

ich soll alle ungeraden zahlen von 200 bis 100 angeben.


```
public class Übung3 {

  public static void main(String[] args) {
    int i;
    do {
      i = 99;
      int e = i + 2;
      System.out.println(e);

    }
    while ( i <= 200 && i => 100);
  }
}
```
jetzt zeigt der mir:
"Übung3.java:19:28: illegal start of expression
    while ( i <= 200 && i => 100);
                                   ^
1 error
"
ich hab das i nach dem und wegelassen.. dann klappts auch net..
was ist da falsch?

und mein zweites problem ist..
mein checkstyle funzt iwie net :S

da kommt sowas:

java.lang.NoClassDefFoundError: com/puppycrawl/tools/checkstyle/Main
Caused by: java.lang.ClassNotFoundException: com.puppycrawl.tools.checkstyle.Main
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: com.puppycrawl.tools.checkstyle.Main.  Program will exit.
Exception in thread "main" 

was ist da falsch?

danke nochmal..


----------



## Landei (30. Aug 2009)

Nicht =>, sondern >=. Und die Initialisierung mit 99 muss vor die Schleife (sonst führt er sie ja immer wieder aus)

Warum nimmst du eigentlich keine for-Schleife wie jeder normale Java-Programmierer?


```
for(int i = 100; i <= 200; i++) {
   // tu was interessantes
}
```


----------



## Landei (30. Aug 2009)

Übrigens schade, dass die Quadratzahlfrage schon gegessen ist, man hätte den Lehrer ja mal mit sowas schocken können:

```
public static void squares(int limit) {
   for(int d = 1, s = 0; s <= limit; s += d, d += 2) {
      System.out.println(s);
   }
}
```


----------



## figuerro (30. Aug 2009)

danke..
ähm die aufgabenstellung ist dass wir es mit der DO-WHILE schleife machen solln...
ich hätts auch mit ner for gemacht..
ok ich werd gleich ma ausprobieren..


----------

