2014-05-25 1 views
-1

Cela devrait être la sortie finale, mais mon code descend une ligne droite.Pourquoi ma sortie de boucle imbriquée ne se déplace pas vers une nouvelle ligne

(^_^) 
    (^_^) (^_^) 
    (^_^) (^_^) (^_^) 
    (^_^) (^_^) (^_^) (^_^) 
    (^_^) (^_^) (^_^) (^_^) (^_^) 

Le code:

public class PP2A { 

    public static final int MAX = 5; 

     public static void main(String[] args) { 
     loop(); 

    } 

    public static void loop() { 
     int count,number; 

    for(count=1; count<=MAX; count++) { 
    for(number=1; number<= count; number++) { 
    System.out.println(" (^_^) "); 
    } 
    System.out.println(); 
     } 

     } 
    } 

Répondre

1

changement
System.out.println(" (^_^) ");
à
System.out.print(" (^_^) ");

+0

Omggg vous les gars, rock !! Une telle erreur stupide. Merci un million !!!!!!! – user3196648

+0

Pas de problème du tout, j'ai fait la même erreur. ;) – Outsider

1

Selon Java Docs:

void java.io.PrintStream.println(): Termine la ligne en cours en écrivant la chaîne de séparateur de ligne. La chaîne de séparateur de ligne est définie par la propriété système line.separator et n'est pas nécessairement un caractère de nouvelle ligne unique ('\n').

En d'autres termes,

System.out.println(s); 

imprime un après l'impression nouvelle lignes.

Que pouvez-vous faire? Vous pouvez utiliser:

System.out.print(s); 

à la place.

+0

Merci omg je n'ai vraiment pas remarqué ce que j'ai fait de mal lol – user3196648

0

changement

System.out.println(" (^_^) "); 

à

System.out.print(" (^_^) " + ((number == count) ? "\n" : "")); 

Et enlever

System.out.println(); 

Solution complète:

public static void loop() { 
    int count, number; 

    for (count = 1; count <= MAX; count++) { 
     for (number = 1; number <= count; number++) { 
      System.out.print(" (^_^) " + ((number == count) ? "\n" : "")); 
     } 
    } 

} 
+0

Merci aussi !! – user3196648

Questions connexes