IF-Statement wird nicht ausgeführt

Ofof91

Aktives Mitglied
Es soll ein Koordinatensystem realisiert werden, nun das ist aber nicht das Problem. In der For-Schleife habe ich ein If-Statement und obwohl die Bedingung erfüllt wird, wird diese nicht ausgeführt. Weiß jemand warum?

Java:
public class Coo
{
  final static int Y=25;
  final static int X=10;

  public static void main(String [] args)
  {
    int y=1;

    char[][] coosystem=new char[Y][X];

    for(int county=0;county<Y;county++)
    {
      for(int countx=0;countx<X;countx++)
      {
       coosystem[county][countx]=' ';
       coosystem[county][1]='|';  
       coosystem[0][1]='^';

         if(county==y)
         {
          coosystem[county][1]='+';
          y=y+5;
         }

       System.out.print(coosystem[county][countx]);
      }
     System.out.println();
    }
  }
}
 
Du überschreibst es ja gleich wieder.

Sobald y == county ist und es abgearbeitet wird ist countx == 0. Dann schreibst du coosystem[county][1]='+';. Im nächsten X-Schleifedurchlauf schreibst du aber wieder coosystem[county][1] = '|' und gibst erst dann coosystem[county][countx (1)] aus.

Blöd zu erklären. :bahnhof:
 
Befehle die nicht von einer Schleifenvariable abhängen besser sowieso nicht in die Schleife, werden unnötig wiederholt

hier lohnt sich alles nach und nach zusammenzubauen, erst im Endergnis eine Ausgabe:
Java:
        for (int county = 0; county < Y; county++)
        {
            for (int countx = 0; countx < X; countx++)
            {
                coosystem[county][countx] = ' ';
            }
            // Rest nur 1x pro county, wird zudem nicht mehr von countx-Schleife überschrieben
            coosystem[county][1] = '|';

            if (county == y)
            {
                coosystem[county][1] = '+';
                y = y + 5;
            }
        }
        coosystem[0][1] = '^'; // nur 1x!
        for (int county = 0; county < Y; county++)
        {
            for (int countx = 0; countx < X; countx++)
            {
                System.out.print(coosystem[county][countx]);
            }
            System.out.println();
        }
 
Alles funktioniert so wie gedacht, nur bei der Nummerierung der Achsen (jeweils eine Nummer(bzw.Zahl) links vom Plus-Zeichen) verschiebt sich das Plus-Zeichen bei der y-Achse um 1 nach rechts, sodass ein Leerraum zwischen den beiden entsteht. Weiß jemand den Grund dafür...?
^
|
3 +
|

Java:
y=1;
    for(county=0;county<YCOORDINATE;county++)
    { if(county==y)
      {
       System.out.print(3);y=y+5;
      }
      for(countx=0;countx<XCOORDINATE;countx++)
      { 
       System.out.print(coosystem[county][countx]);
      }      
     System.out.println();    
    }
 
das musst du evtl. im vollständigen Programm noch einmal genauer erläutern,

bisher kann man nur sagen, dass du das Plus an Array-Position 1 schreibst,
davor gibt es noch die Position 0, die ist mit einem Leerzeichen gefüllt
 

Neue Themen


Zurück
Oben