[ osmania @ 12.11.2007. 23:20 ] @
ljudi da ne gnjavim pocetnik sam u javi ali bas ono, treba mi hitno program da proradi
uradio sam nekoliko ne znamu vemu je fora javlja mi gresku.
ako mozete pomozite mi hvala puno.
program treba da ispise proste brojeve od 2 pa do ukucucanog primjer 50.
od 2 do 50 treba da ispise sve proste brojeve..

Code:
public class osmani {


public static void main(String args[]){
   
    int i, j, z;
    int x = 50;
    int[] feld = new int[x]; // feld wird erzeugt
    for ( i = 0; i <= x-1; i++) // mit Werten von 1 bis x belegt
        {
        feld[i]=i+1;
        }
  
      
    for ( i = 2; i<=x/2; i++)
        for ( j = 2; j<=x/2; j++){ 
                  feld[i *j]=0; }



    System.out.println("Primzahlen sind.");
    i = 0;
    while(i <= x-1) {
      if(feld[i] > 1) {
         System.out.println("Primzahlen sind. "+ feld[i]);
      }
      i++;
    }}}

    
  
[ zmau @ 13.11.2007. 08:37 ] @
Citat:
javlja mi gresku

Onda nam lepo kažeš koju "grešku ti javlja" i tako nam uštediš malo posla. A dok razmišljaš o vrsti exceptiona koji si dobio, možda se i ti setiš o čemu se radi. Znači, dobio si verovatno nekakav IndexOutOfBoundsException što bi trebalo da znači da si pokušao da pristupiš elementu niza sa indexom većim (ili jednakim) od dužine niza. A jesi, jer ono i*j ume da bude dosta veće od 50, zar ne ? To je dijagnostika.
A rešenje...pa možeš da obuhvatiš tu frčnu liniju koda try catch blokom i da jednostavno progutaš exception i teraš dalje. Program će da radi. Ali mnogo lepše bi bilo ne dozvoliš exceptionu da se pojavi, odnosno da uopšte ne pokušaš da pristupiš polju feld[i *j] ako je i*j veće od 49.