<div dir="ltr"><div dir="auto">Currently, "don't mix nextLine with next/next int/etc" is an extremely common footgun.<br><br>In one of the coding help discords, this is the auto message we send when people run into trouble with that.<br><br><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">Mixing any </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextXXX</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> method with </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextLine</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> from the </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">Scanner</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> class for user input</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, will not ask you for input again but instead result in an empty line read by </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextLine</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">.</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">
To prevent this</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, when reading user input</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, always only use </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextLine</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">. If you need an </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">int</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, do
</span><pre style="margin-top:6px;margin-bottom:0px;padding:0px;border:none;font-size:0.75rem;vertical-align:baseline;box-sizing:border-box;border-radius:4px;line-height:1rem;max-width:100%;background-clip:border-box"><div class="gmail-codeContainer_f8f345" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px"><code class="gmail-scrollbarGhostHairline_c858ce gmail-scrollbar_c858ce gmail-hljs gmail-java" style="margin:0px;padding:0.5em;border:none;font-weight:inherit;font-style:inherit;font-size:0.875rem;vertical-align:baseline;line-height:1.125rem;display:block;overflow-x:auto;border-radius:4px"><span class="gmail-hljs-type" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(255,123,114)">int</span> <span class="gmail-hljs-variable" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">value</span> <span class="gmail-hljs-operator" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">=</span> Integer.parseInt(scanner.nextLine());</code></div></pre><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">
instead of using </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextInt</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">.</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">
Assume the following</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">:
</span><pre style="margin-top:6px;margin-bottom:0px;padding:0px;border:none;font-size:0.75rem;vertical-align:baseline;box-sizing:border-box;border-radius:4px;line-height:1rem;max-width:100%;background-clip:border-box"><div class="gmail-codeContainer_f8f345" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px"><code class="gmail-scrollbarGhostHairline_c858ce gmail-scrollbar_c858ce gmail-hljs gmail-java" style="margin:0px;padding:0.5em;border:none;font-weight:inherit;font-style:inherit;font-size:0.875rem;vertical-align:baseline;line-height:1.125rem;display:block;overflow-x:auto;border-radius:4px"><span class="gmail-hljs-type" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(255,123,114)">Scanner</span> <span class="gmail-hljs-variable" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">scanner</span> <span class="gmail-hljs-operator" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">=</span> <span class="gmail-hljs-keyword" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(255,123,114)">new</span> <span class="gmail-hljs-title gmail-class_" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(210,168,255)">Scanner</span>(System.in);
System.out.println(<span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">"Enter your age:"</span>);
<span class="gmail-hljs-type" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(255,123,114)">int</span> <span class="gmail-hljs-variable" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">age</span> <span class="gmail-hljs-operator" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">=</span> scanner.nextInt();
System.out.println(<span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">"Enter your name:"</span>);
<span class="gmail-hljs-type" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(255,123,114)">String</span> <span class="gmail-hljs-variable" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">name</span> <span class="gmail-hljs-operator" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">=</span> scanner.nextLine();
System.out.println(<span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">"Hello "</span> + name + <span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">", you are "</span> + age + <span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">" years old"</span>);</code></div></pre><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">
When executing this code</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, you will be asked to enter an age</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, suppose you enter </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">20</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">.
However</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, the code will not ask you to actually input a name and the output will be</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">:
</span><pre style="margin-top:6px;margin-bottom:0px;padding:0px;border:none;font-size:0.75rem;vertical-align:baseline;box-sizing:border-box;border-radius:4px;line-height:1rem;max-width:100%;background-clip:border-box"><div class="gmail-codeContainer_f8f345" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px"><code class="gmail-scrollbarGhostHairline_c858ce gmail-scrollbar_c858ce gmail-hljs gmail-java" style="margin:0px;padding:0.5em;border:none;font-weight:inherit;font-style:inherit;font-size:0.875rem;vertical-align:baseline;line-height:1.125rem;display:block;overflow-x:auto;border-radius:4px">Hello , you are <span class="gmail-hljs-number" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">20</span> years old.</code></div></pre><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">
The reason why is that when you hit the </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">enter</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> button</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, your actual input is
</span><pre style="margin-top:6px;margin-bottom:0px;padding:0px;border:none;font-size:0.75rem;vertical-align:baseline;box-sizing:border-box;border-radius:4px;line-height:1rem;max-width:100%;background-clip:border-box"><div class="gmail-codeContainer_f8f345" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px"><code class="gmail-scrollbarGhostHairline_c858ce gmail-scrollbar_c858ce gmail-hljs gmail-java" style="margin:0px;padding:0.5em;border:none;font-weight:inherit;font-style:inherit;font-size:0.875rem;vertical-align:baseline;line-height:1.125rem;display:block;overflow-x:auto;border-radius:4px"><span class="gmail-hljs-number" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">20</span>\n</code></div></pre><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">
and not just </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">20</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">. A call to </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextInt</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> will now consume the </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">20</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> and leave the newline symbol </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">\n</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> in the internal input buffer of </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">System.in</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">. The call to </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextLine</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> will now not lead to a new input</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, since there is still unread input left in </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">System.in</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">. So it will read the </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">\n</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, leading to an empty input</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">.</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">
So every user input is not only a number</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, but a </span><span style="margin:0px;padding:0px;border:0px;font-weight:700;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"><span style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px">full line</span></span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">. As such</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, it makes much more sense to also use </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextLine()</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, even if reading just an age</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">. The corrected code which works as intended is</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">:
</span><pre style="margin-top:6px;margin-bottom:0px;padding:0px;border:none;font-size:0.75rem;vertical-align:baseline;box-sizing:border-box;border-radius:4px;line-height:1rem;max-width:100%;background-clip:border-box"><div class="gmail-codeContainer_f8f345" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px"><code class="gmail-scrollbarGhostHairline_c858ce gmail-scrollbar_c858ce gmail-hljs gmail-java" style="margin:0px;padding:0.5em;border:none;font-weight:inherit;font-style:inherit;font-size:0.875rem;vertical-align:baseline;line-height:1.125rem;display:block;overflow-x:auto;border-radius:4px"><span class="gmail-hljs-type" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(255,123,114)">Scanner</span> <span class="gmail-hljs-variable" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">scanner</span> <span class="gmail-hljs-operator" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">=</span> <span class="gmail-hljs-keyword" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(255,123,114)">new</span> <span class="gmail-hljs-title gmail-class_" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(210,168,255)">Scanner</span>(System.in);
System.out.println(<span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">"Enter your age:"</span>);
<span class="gmail-hljs-comment" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(139,148,158)">// Now nextLine, not nextInt anymore</span>
<span class="gmail-hljs-type" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(255,123,114)">int</span> <span class="gmail-hljs-variable" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">age</span> <span class="gmail-hljs-operator" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">=</span> Integer.parseInt(scanner.nextLine());
System.out.println(<span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">"Enter your name:"</span>);
<span class="gmail-hljs-type" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(255,123,114)">String</span> <span class="gmail-hljs-variable" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">name</span> <span class="gmail-hljs-operator" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(121,192,255)">=</span> scanner.nextLine();
System.out.println(<span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">"Hello "</span> + name + <span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">", you are "</span> + age + <span class="gmail-hljs-string" style="margin:0px;padding:0px;border:0px;font-weight:inherit;font-style:inherit;font-family:inherit;vertical-align:baseline;outline:0px;color:rgb(165,214,255)">" years old"</span>);</code></div></pre><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">
The </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextXXX</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> methods</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">, such as </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">nextInt</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> can be useful when reading multi</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">-input from a single line</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">. For example when you enter </span><code class="gmail-inline" style="padding:0px 0.2em;border:none;font-size:11.9px;vertical-align:baseline;line-height:1.125rem;width:auto;height:auto;border-radius:4px">20 John</code><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px"> in a single line</span><span style="margin:0px;padding:0px;border:0px;font-family:"gg sans","Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;vertical-align:baseline;outline:0px">.</span><br><div dir="auto"><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Nov 7, 2024, 11:36 AM Kenneth Fogel <<a href="mailto:kfogel@dawsoncollege.qc.ca" target="_blank">kfogel@dawsoncollege.qc.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div lang="EN-CA" style="overflow-wrap: break-word;">
<div>
<p class="MsoNormal"><span lang="EN-US">The readln method introduced as part java.base is great because it includes the prompt for the input. The only shortcoming is that if the input must be a number then you still need to employ a static class member such
as Double.parseDouble() to make it a number:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">// Currently<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">var loan = Double.parseDouble(readln("Loan: "));<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">// My delusional idea<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">var loan = readDbl("Loan: ");<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I can think of reasons why this could be a bad idea. I taught my students to use a construct using Scanner to create a console input that passed my Beethoven test (while humming Beethoven’s 5<sup>th</sup> symphony randomly
strike keys on your keyboard as if you were playing the symphony and your code should just report invalid input and not an exception). If we had a readInt and/or readDbl they would not pass this test. That Python would happily accept anything and then fail
when the value was used in a calculation is no better. But, for learning Java could we have a readInt or readDbl alongside readln? I know that
</span>DataInputStream has such methods, but without a prompt and it must be attached to an input stream such as a file.<u></u><u></u></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">As always, just thinking out loud. Feel free to use my name in vain.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">Ken<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
</div>
</blockquote></div>