2017-10-07 6 views
0

Je suis très nouveau en Java Programming Language.Java: boucles imbriquées

J'ai demandé de faire quelque chose comme ceci avec la méthode de boucles imbriquées:

picture1. "Masukan Angka" est "numéro d'entrée" en langue indonésienne. Donc, si nous entrons 9, il imprimera 9 lignes de * et la quantité de * diminuée pour chaque ligne.

Je l'ai essayé avec des boucles imbriquées, ce que je fait: picture2

Le code est:

public static void main(String args[]) { 
     Scanner in = new Scanner(System.in); 
     System.out.print("Input your number: "); 
     int x = in.nextInt(); 
     for (int y = x; y > 0; y--) { 
      for (int z = 0; z < y; z++) 
       System.out.print("*"); 
      System.out.println(); 
     } 
    } 

Comment puis-je faire cela n'a pas rempli avec * dans la ligne 2 7, mais remplis à la place avec un espace vide comme l'exemple de la première image?

Merci d'avance.

+2

Vous pouvez ajouter une condition if (z == 0 || z == y-1), puis imprimer – Ringuerel

+0

Bienvenue dans Stack Overflow. Divisez le problème en plusieurs parties. Le sommet est dessiné différent du milieu, et peut-être le fond – AJNeufeld

Répondre

1

expansion un peu @Ringuerel solution:

for (int y = x; y > 0; y--) { 
    for (int z = 0; z < y; z++) { 
     // If it's first or last or first row print "*" 
     if(z == 0 || z == y-1 || y == x) { 
      System.out.print("*"); 
     } 
     else { 
      // Otherwise print " " 
      System.out.print(" "); 
     } 
    } 
    System.out.println(); 
}  
0

Ajouter cette après la deuxième pour, avant l'instruction d'impression, if(z == 0 || z == y-1), désolé j'utiliser mon téléphone

0
public static void main(String[] args) { 
    int amount = 10; 
    String c = "*"; 
    String message = ""; 
    for (int i = 0; i < amount; i++) { 
     message += "*"; 
     for (int j = 1; j < amount - i; j++) { 
      message += c; 
     } 
     message += "*"; 
     c = " "; 
     System.out.println(message); 
     message = ""; 
    } 
    System.out.println("*"); 

} 

Vous pouvez essayer si tu veux. Je ne l'ai pas testé mais je suis à peu près certain que ça marchera.

+0

En ajoutant à cela, vous l'entrée que vous obtenez. Le montant sera l'entrée -1. –