On dirait que c'est la façon dont votre programme ressemble:
y=3<newline>
x+5<newline>
Mais vous voulez que ça ressemble à:
y=3x+5
Les nouvelles lignes problématiques proviennent de l'utilisation du scanner et de la nature inhérente en mémoire tampon de la norme contribution. Pour que le scanner sache qu'il a atteint la fin du nombre, il doit y avoir des espaces (espace, retour à la ligne, etc.) Et pour que le programme reçoive l'entrée de STDIN, la longueur du caractère de l'int doit être plus grand que la taille de la mémoire tampon, ou ENTER doit être poussé. TL; DR - Ce que vous voulez est très difficile à faire, et peut-être impossible, juste en utilisant la norme de base. Si vous voulez vraiment la sortie que vous désirez, vous aurez probablement besoin de trouver une bibliothèque pour interagir avec la console et Utiliser ça.
Cependant, si vous recadrez votre entrée, vous pourriez être en mesure d'obtenir quelque chose de presque aussi bon:
enter intercept: 5<enter>
enter slope: 3<enter>
y=3x+5
Votre code, modifié pour produire cette sortie:
System.out.print("enter intercept:");
while(!scan.hasNextInt()) scan.next();
m = scan.nextInt();
System.out.print("enter slope: ");
while(!scan.hasNextInt()) scan.next();
b = scan.nextInt();
System.out.println("y="+m+"x+"+b);
Pourquoi avez-vous besoin alors? –
est-il bien pour vous d'avoir une entrée comme celle-ci - 3 4? –
tom