2010-10-29 2 views
1

J'ai les lignes suivantes:Comportement étrange en Java, est-ce juste moi?

for (int i=0;i<3;i++) System.out.print("\nA : "+i); 
// System.out.println(""); 
// for (int i=0;i<3;i++) System.out.println("B : "+i); 

La sortie est:

A : 0 
A : 1 
A : 2A : 2 

Pourquoi? Je m'y attendais:

A : 0 
A : 1 
A : 2 

Mais si je décommenter les 2e et 3e lignes [ensemble ou un à la fois], il comportée correctement? Que se passe-t-il ? Est-ce mon problème de PC, ou mon problème NB6.7? Je ne peux pas croire que Java ferait ça!

Edit:

for (int i=0;i<3;i++) System.out.print("A: "+i+"\n") 

fonctionne correctement comme prévu. Lorsque je l'ai exécuté à partir de la ligne de commande, aucun problème, semble être un problème NB.

+3

Est-ce tout le code? Y a-t-il une chance qu'une ligne parasite produise ce dernier résultat? – Lazarus

+2

Enfin un syndrôme "ne marche pas sur ma machine" :) –

+1

as-tu essayé d'exécuter le même code sur la ligne de commande? au moins, cela vous dirait si c'est NB ou votre système en faute. – anirvan

Répondre

2

Works pour moi:

public class Test { 
    public static void main(String [] args) { 
     for (int i=0;i<3;i++) System.out.print("\nA : "+i); 
    } 
} 

Sortie:

C:\Users\Jon\Test>javac Test.java 

C:\Users\Jon\Test>java Test 

A : 0 
A : 1 
A : 2 
C:\Users\Jon\Test> 

Peut-être Netbeans est juste faisant écho à la dernière ligne de sortie lorsque l'application se termine?

+0

J'ai pensé à un tampon moi-même, mais je ne connais pas assez Java pour le faire. – Lazarus

0

Cela fonctionne pour moi aussi, mais essayez ce qui suit et dites-nous ce qu'il fait. Essayez de mettre la nouvelle ligne après le print("A: "+i+"\n");

+0

print ("A:" + i + "\ n") fonctionne correctement comme prévu. – Frank