2013-04-26 11 views
5

Naprawdę lubię programowanie i lubię programować w wolnym czasie, więc próbowałem stworzyć kod, w którym wynik będzie wyglądał jak x. Coś takiego.kłopoty z pętlą for w Javie

x x 
x x 
    x 
x x 
x x 

Więc chciałem, aby użytkownik wprowadził wysokość "x". To jest kod, który mam do tej pory i naprawdę nie wiem, jak iść dalej. Potrzebuję podpowiedzi lub jeśli ktoś może mi powiedzieć, dokąd się pomyliłem.

import java.util.Scanner;  
    public class x{ 
    public static void main(String[] args){ 
    Scanner kbd = new Scanner(System.in); 
    int height;  
    System.out.print("Enter the height of the X: ");    
    height = kbd.nextInt(); 
    for (int i = 1; i <= height; i++){       
     for (int j = 1; j <= height; j++) {        
     if(i ==j || j+i == height + 1)        
      System.out.println("x");        
     else        
      System.out.print(" "); 
     } 
    } 
    } 
} 
+0

chcesz wydrukować tylko 1 wiersz "x" -es? lub jakiś stół? –

+0

jest podobny do tabeli – akif

+4

Java jest indeksowana na 0, nie 1. –

Odpowiedz

5

Dwie zmiany:

  • zmiana System.out.println("x"); do System.out.print("x"); (remove ln po wydruku)

  • po dwóch liniach

    System.out.print(" "); 
    } 
    

    dodać

    System.out.println(); 
    
+0

"dodaj System.out.println(); po linii System.out.print (" ");" na pewno nie zaraz po, ale po), albo każda pusta przestrzeń dostanie nową linię, Richard, to jest właśnie linia –

+0

. dzięki za heads up! będę edytować odpowiedź. –

0
for (int i = 0; i < height; i++){       
    for (int j = 0; j < height; j++) {        
     if(i == j || j + i == height - 1)        
      System.out.print("x");        
     else        
      System.out.print(" "); 
    } 
    System.out.println(); 
} 
0

Działa to dla mnie zarówno dziwne, a nawet wysokość na X:

import java.util.Scanner; 
public class x{ 
    public static void main(String[] args){ 
    Scanner kbd = new Scanner(System.in); 
    int height;  
    System.out.print("Enter the height of the X: ");    
    height = kbd.nextInt(); 
    for (int i = 0; i <= height; i++){       
     for (int j = 0; j <= height; j++) {        
     if((i ==j && i!=0) || j+i == height + 1) //needed to check for i or j !=0 
      System.out.print("x"); //this shouldn't be println    
     else        
      System.out.print(" "); 
     } 
     System.out.println(); //you needed this 
    } 
    } 
} 
Powiązane problemy