La ligne que vous tapez en Java
Vous voulez que l'écran affiche un mot que vous tapez après le démarrage du programme, un mot qui n'est pas écrit dans le fichier. Sur la page précédente, le mot était entre guillemets sur la ligne de garde, donc un autre écran voulait dire modifier Mint.java. Sur cette page, le fichier ne contient pas leaf du tout. Il crée un nom, plant, puis il attend. Vous tapez leaf et vous appuyez sur Enter. La ligne d'écriture utilise le nom nu, et le programme écrit leaf. Vous n'installez pas Java une seconde fois. Vous n'ajoutez pas une note, et vous n'apprenez pas une deuxième façon de finir une ligne. Vous savez déjà qu'un nom peut garder des lettres et que println écrit ces lettres. Le travail nouveau est de remplir ce nom avec la ligne que vous tapez.
Le fichier attend une ligne tapée
Ouvrez Mint.java. Le nom du fichier reste Mint.java, parce que public class Mint est encore le nom du fichier. Cette page ne renomme pas le fichier et ne change pas public class Mint. La première ligne du fichier, au-dessus de public class Mint, est import java.util.Scanner;. Cette ligne permet au fichier d'utiliser Scanner. Ce n'est pas une ligne d'écriture. Scanner n'est pas une lettre pour l'écran. Le point-virgule finit la ligne d'import. Laissez une ligne vide en dessous, puis la même public class Mint que vous avez déjà. Ce fichier n'a toujours pas de ligne package. L'import est la première ligne, pas une ligne dans main.
Dans main, la première ligne nouvelle fabrique l'outil de lecture : Scanner reader = new Scanner(System.in);. Scanner dit quel genre de chose est reader. reader est le nom, et il commence par un r minuscule. Le signe = garde cet outil dans ce nom. new Scanner(System.in) fabrique l'outil et le relie à System.in. System.in est l'endroit d'où sont lues les lettres que vous tapez. System.out, que vous utilisez déjà sur la ligne d'écriture, est l'écran. Les deux ne sont pas la même chose. Le point-virgule finit cette ligne. Cette ligne n'écrit pas l'écran, et elle n'attend pas que vous tapiez. Elle fabrique seulement reader.
La ligne suivante remplit le nom que vous connaissez déjà de la page précédente : String plant = reader.nextLine();. String veut encore dire que ce nom garde des lettres. plant commence encore par un p minuscule. Le signe = garde encore des lettres dans ce nom. Le nouveau est le côté droit. reader.nextLine() n'a pas de guillemets. Il n'y a pas leaf sur cette ligne. La ligne demande à reader une ligne tapée. Le programme attend là jusqu'à ce que vous appuyiez sur Enter. Quand vous appuyez sur Enter, nextLine garde les lettres que vous avez tapées avant cet Enter. Il ne garde pas la touche Enter elle-même. Puis la ligne finit au point-virgule. Garder n'est toujours pas écrire. Le programme n'a pas encore écrit sa propre ligne.
La ligne d'écriture reste le nom nu, avec la même forme que dans le fichier que vous avez gardé à la page précédente : System.out.println(plant);. Sans guillemets. Java lit le nom plant, écrit les lettres que ce nom garde, et finit la ligne. Ces lettres sont ce que nextLine vient de garder. Si vous avez tapé leaf, le programme écrit leaf. Si vous avez tapé stem, le programme écrit stem. Le fichier n'a pas changé entre les deux lancements. Enregistrez le fichier.
Le fichier que vous gardez
Enregistrez ceci sous le nom Mint.java. C'est le fichier que cette page garde. Le mot que vous allez taper n'est pas dans le fichier. Cherchez dans le fichier les lettres l, e, a et f. Elles n'y sont pas. L'outil de lecture s'appelle reader. La ligne gardée s'appelle plant. La ligne d'écriture utilise plant et ne contient pas de guillemets.
import java.util.Scanner;
public class Mint {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String plant = reader.nextLine();
System.out.println(plant);
}
}
Lisez le fichier depuis le haut et décidez ce qui peut atteindre l'écran. import java.util.Scanner; permet seulement au fichier d'utiliser Scanner. public class Mint nomme le fichier. public static void main(String[] args) est l'endroit où Java commence. Aucun de ces mots n'est une lettre pour l'écran. Le mot String de la ligne main n'est pas le String qui crée plant. Scanner reader = new Scanner(System.in); fabrique l'outil reader. Il n'écrit rien. String plant = reader.nextLine(); garde une ligne tapée dans plant. Il n'écrit rien par lui-même. System.out.println(plant); est la seule ligne d'écriture. Elle écrit les lettres gardées et finit la ligne. Le nom plant n'est pas écrit. Le nom reader n'est pas écrit. System n'est pas écrit. Le point-virgule n'est pas écrit.
Ce que vous tapez et ce que le programme écrit
Dans le dossier qui contient ce Mint.java, tapez javac Mint.java. Quand le fichier est correct, cette commande n'écrit aucune ligne. Une ligne d'import et un reader ne font pas écrire une ligne à javac, et ne le font pas échouer. Ensuite tapez java Mint. Ne tapez pas .java après java. Ce sont les deux mêmes commandes que vous tapez sous Windows et sous macOS. Cette page ne cite pas la marque que l'invite affiche avant la commande. Ces marques diffèrent, et elles ne sont pas la ligne du programme.
Après java Mint, le programme attend sur reader.nextLine(). Il n'a pas fini, et il n'a pas écrit leaf, parce que vous ne lui avez pas encore donné une ligne. Le curseur est sur une ligne neuve. Tapez les lettres l, e, a et f. Le terminal affiche ces lettres pendant que vous appuyez sur les touches. Cet affichage, c'est le terminal qui répète vos touches. Ce n'est pas System.out.println. Puis appuyez sur Enter.
Enter finit l'attente. nextLine garde le mot leaf dans plant et ne garde pas Enter. println écrit ensuite leaf et finit la ligne. Vous voyez leaf, et en dessous leaf encore une fois. Le premier leaf, ce sont les touches que le terminal a affichées. Le second leaf, c'est le programme. La ligne du programme n'a pas de guillemets. Quatre lettres, puis la ligne finit. Le programme finit après cette ligne d'écriture. Si vous voulez juger seulement la ligne du programme, regardez la ligne qui apparaît après avoir appuyé sur Enter.
Si la ligne du programme est plant, la ligne d'écriture a des guillemets autour de plant. Le fichier que vous gardez n'en a pas. Si la ligne du programme est mint, la ligne d'écriture est encore System.out.println("mint");, ou le fichier garde encore un mot entre guillemets d'une page plus ancienne. Si java Mint écrit leaf tout de suite et n'attend jamais, le fichier garde encore un mot entre guillemets, comme String plant = "leaf";, et n'utilise pas nextLine. Cherchez des guillemets autour de leaf. Le fichier que vous gardez n'en a pas. Vous ne réinstallez pas Java parce que l'écran affiche le mauvais mot.
Les majuscules sont copiées telles que vous les tapez. Si vous tapez Leaf avec un L majuscule et que vous appuyez sur Enter, la ligne du programme est Leaf. Le fichier ne contient toujours pas ces lettres. Un Enter vide est aussi une vraie ligne. Appuyez sur Enter sans taper de lettres. nextLine ne garde aucune lettre dans plant. println écrit une ligne sans lettres. Le programme a bien été lancé. L'attente a fini parce que vous avez appuyé sur Enter. Le fichier que vous gardez est celui que vous essayez avec leaf, quatre petites lettres.
Un espace reste dans la ligne
nextLine lit jusqu'à Enter, pas jusqu'à un espace. Tapez leaf, puis un espace, puis stem, puis Enter. Les lettres gardées dans plant sont leaf, un espace, et stem. System.out.println(plant) écrit leaf stem. L'espace est un caractère gardé, de la même façon qu'un espace dans les guillemets était gardé à la page précédente. Cette page ne coupe pas la ligne à l'espace. Le fichier que vous gardez lit toujours une seule ligne. Quand vous voulez l'espace sur l'écran, vous changez seulement ce que vous tapez, pas le fichier.
Deux lignes tapées, deux Enter
Un seul reader peut prendre une deuxième ligne. Sous la première ligne d'écriture, gardez une nouvelle ligne dans le même nom, puis écrivez le nom une seconde fois. La nouvelle ligne de garde est plant = reader.nextLine();. Elle ne commence pas par String. plant existe déjà, donc cette ligne remplace seulement les lettres que le nom garde. La ligne d'écriture suivante est encore System.out.println(plant);. Le programme attend maintenant deux fois. Chaque nextLine attend son propre Enter.
C'est le deuxième fichier. Ce n'est pas le fichier que vous gardez. Le fichier que vous gardez attend une fois et écrit une fois. Enregistrez ce deuxième fichier sous le nom Mint.java quand vous voulez deux lignes tapées, puis remettez ensuite le seul nextLine et le seul println.
import java.util.Scanner;
public class Mint {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String plant = reader.nextLine();
System.out.println(plant);
plant = reader.nextLine();
System.out.println(plant);
}
}
Tapez javac Mint.java. Le fichier est correct, donc javac n'écrit aucune ligne. La deuxième ligne de garde peut omettre String, et cette omission ne fait pas échouer javac. Ensuite tapez java Mint. Le programme attend. Tapez leaf et appuyez sur Enter. Le terminal affiche leaf, et le programme écrit leaf en dessous. Le programme attend encore. Il n'a pas fini. Tapez stem et appuyez sur Enter. Le terminal affiche stem, et le programme écrit stem en dessous. Les lignes du programme sont leaf, puis stem. Les lettres que le terminal a affichées depuis les touches sont au-dessus de chacune de ces lignes. Si les deux lignes du programme disent leaf, le second nextLine n'a pas été exécuté, ou vous avez tapé leaf les deux fois. Si le programme écrit stem avant que vous ayez tapé une deuxième ligne, le second println n'est pas sous un second nextLine. L'écran suit l'ordre des lignes du fichier, et chaque attente suit le nextLine qui n'a pas encore reçu Enter.
N'écrivez pas String une deuxième fois pour le même nom. String plant = reader.nextLine();, sous une ligne qui a déjà créé plant, est une autre erreur. Cette ligne essaie de créer plant encore une fois. javac écrit une erreur et ne reste pas silencieux. Vous n'avez pas besoin du texte exact de cette erreur. Le fait utile est que javac a écrit une ligne, donc vous ne tapez pas encore java Mint. Effacez le deuxième String et laissez plant = reader.nextLine();. Le nom est créé une fois. Les lignes suivantes changent seulement les lettres qu'il garde. Dans le fichier que vous gardez, il n'y a pas de second nextLine. Après avoir vu leaf puis stem, remettez le fichier à une seule ligne.
La ligne d'import est au-dessus de public class
Le fichier ne connaît Scanner que si la ligne d'import est là. Si vous effacez import java.util.Scanner; et laissez le reste du fichier que vous gardez, javac écrit une erreur. Il ne reste pas silencieux. Il n'y a pas d'écran à lire, parce que vous ne tapez pas java Mint pendant que javac écrit une erreur. Vous n'avez pas besoin des mots exacts de l'erreur. La réparation est de remettre import java.util.Scanner; comme première ligne, au-dessus de public class Mint, avec son point-virgule. Enregistrez, tapez javac Mint.java encore une fois, et attendez que javac n'écrive aucune ligne.
Ce troisième fichier n'a pas l'import. Ce n'est pas le fichier que vous gardez. Enregistrez-le seulement jusqu'à ce que javac écrive l'erreur, puis remettez la ligne d'import.
public class Mint {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
String plant = reader.nextLine();
System.out.println(plant);
}
}
La ligne d'import échoue aussi si vous la placez dans main, sous l'accolade ouvrante, ou si vous la placez sous public class. Java lit un import au-dessus de public class, pas comme une étape dans main. Remettez-la sur la première ligne. Un point-virgule manquant sur cette ligne est le même genre d'échec : javac écrit une erreur, et vous ne lancez pas java Mint. Le fichier que vous gardez a le point-virgule.
System.in est le seul endroit auquel cette page relie l'outil reader. Scanner reader = new Scanner(System.out); demande un outil de lecture sur l'écran. System.out est l'endroit où println écrit. Ce n'est pas l'endroit d'où sont lues les lettres tapées. javac écrit une erreur. Il ne reste pas silencieux. Ne tapez pas java Mint. Changez System.out en System.in sur cette seule ligne. La ligne d'écriture garde System.out, parce que la ligne d'écriture est l'écran. La ligne reader garde System.in, parce que la ligne reader est le clavier. Les échanger est l'erreur.
Ce quatrième fichier relie l'outil à l'écran. Ce n'est pas le fichier que vous gardez. Enregistrez-le seulement jusqu'à ce que javac écrive l'erreur, puis changez out en in.
public class Mint {
public static void main(String[] args) {
Scanner reader = new Scanner(System.out);
String plant = reader.nextLine();
System.out.println(plant);
}
}
reader doit exister d'abord
Java lit le fichier depuis le haut. La ligne qui fabrique reader doit être au-dessus de la ligne qui utilise reader. Si String plant = reader.nextLine(); vient d'abord, et seulement ensuite Scanner reader = new Scanner(System.in);, la ligne de garde utilise le nom reader avant que reader existe. javac écrit une erreur. Il ne reste pas silencieux. C'est la même règle d'ordre que sur la page précédente, quand plant était utilisé avant String plant. La réparation est de placer la ligne Scanner au-dessus de la ligne nextLine. Un nom n'est pas utilisé sur une ligne plus haute que la ligne qui le crée.
Ce cinquième fichier a l'ordre cassé. Ce n'est pas le fichier que vous gardez. Enregistrez-le seulement jusqu'à ce que javac écrive l'erreur, puis remettez la ligne Scanner au-dessus de nextLine. La ligne d'import reste nécessaire dans un fichier que vous lancez vraiment. Ce fichier cassé garde l'import pour que la seule erreur nouvelle soit l'ordre.
import java.util.Scanner;
public class Mint {
public static void main(String[] args) {
String plant = reader.nextLine();
Scanner reader = new Scanner(System.in);
System.out.println(plant);
}
}
Tapez javac Mint.java. javac écrit une erreur. Ne tapez pas java Mint. Placez Scanner reader = new Scanner(System.in); au-dessus de String plant = reader.nextLine();. Enregistrez. Tapez javac Mint.java encore une fois. Maintenant javac n'écrit aucune ligne. Ensuite java Mint attend. Tapez leaf, appuyez sur Enter, et le programme écrit leaf.
Les guillemets sur la ligne d'écriture veulent encore dire la même chose que sur la page précédente. Après un vrai nextLine, si la ligne d'écriture est System.out.println("plant");, vous pouvez taper leaf et appuyer sur Enter, et la ligne du programme est quand même plant. Les guillemets marquent les lettres p, l, a, n et t. Java ne cherche pas le nom. La ligne que vous avez tapée a été gardée dans plant et n'a jamais été écrite. La réparation est le nom nu, System.out.println(plant);. Le fichier que vous gardez a déjà ce nom nu. Ne mettez pas non plus de guillemets autour de leaf sur la ligne de garde. String plant = "leaf"; garderait leaf depuis le fichier lui-même et n'attendrait jamais. Cette page laisse nextLine sur la ligne de garde et laisse la ligne d'écriture nue.
Vous pouvez maintenant lancer Mint.java, attendre, taper une ligne, appuyer sur Enter, et voir le programme écrire cette ligne. import java.util.Scanner; est au-dessus de public class. Scanner reader = new Scanner(System.in); fabrique l'outil sur le clavier. String plant = reader.nextLine(); garde la ligne, sans Enter. System.out.println(plant); l'écrit et finit la ligne. Un plant = reader.nextLine(); plus bas attend un second Enter. L'import, System.in, et le fait que reader existe avant d'être utilisé, sont ce qui laisse javac silencieux. La page suivante quitte le clavier. Elle regarde des sortes de valeurs qu'un nom peut garder quand vous écrivez ces valeurs dans le fichier, et elle commence par les nombres, pas par une ligne que vous tapez.
L'écran est la ligne que vous avez tapée
Le fichier que vous gardez ne contient pas leaf. Vous tapez leaf après java Mint et vous appuyez sur Enter. Le terminal affiche cette frappe. Le programme écrit ensuite leaf sur la ligne suivante. Un espace que vous tapez fait partie de cette ligne. Un second nextLine est un second Enter, et il n'est pas dans le fichier que vous gardez.
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut