#[環境]
Java version 16.0.1
VS Code
Mac OS Big Surの環境です。
java -version
java version "16.0.1" 2021-04-20
Java(TM) SE Runtime Environment (build 16.0.1+9-24)
Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)
MacBook:09_MinutesToYearsandDayCalculator $
#[エラー]
エラーではなく疑問点があります。
[学習状況]
progateを3巡、ドットインストール1巡、スッキリJavaの本を8割読みました。現在、UdemyのJava Programming Masterclass for Software Developersというコースで演習問題に取り組んでいます
まだまだ初心者ですが真面目に取り組んでいるので、何卒、よろしくお願いします。
#[わからない事]
scannerの学習をしていて不思議に思うことがありました。
一番初めのコードでは、 yearOfBirthをインプットする仕様になっていてそのあと、nameをインプットするようになっています。しかしながらこのままだと、yearOfBirthを入力したと、nameをインプットする時間もなく、最後まで実行されてしまいます。
そこで
scanner.nextLine();
を入れるようにという話がありました。
しかしながら、二つ目のコードではなんの指示もしなくてもいちいちちゃんと入力を待ってくれます。
この違いはどこからくるものなのでしょうか?
#[コード]
java
1import java.util.Scanner; 2public class Main { 3 public static void main(String[] args) { 4 Scanner scanner = new Scanner(System.in); 5 System.out.println("Enter your year of birth; "); 6 int yearOfBirth = scanner.nextInt(); 7 //scanner.nextLine(); //handle the next line charactor 8 System.out.println("Enter your name; "); 9 String name= scanner.nextLine(); 10 int age = 2021-yearOfBirth; 11 12 System.out.println("Your name is " + name + "and you are " + age + "year old"); 13 scanner.close(); 14 } 15 16}
java
1import java.util.Scanner; 2public class solution2 { 3 public static void main(String[] args) { 4 Scanner in = new Scanner(System.in); 5 System.out.print("Input first number: "); 6 int num1 = in.nextInt(); 7 System.out.print("Input second number: "); 8 int num2 = in.nextInt(); 9 System.out.print("Input third number: "); 10 int num3 = in.nextInt(); 11 System.out.print("Input fourth number: "); 12 int num4 = in.nextInt(); 13 14 if (num1 == num2 && num2 == num3 && num3 == num4) 15 { 16 System.out.println("Numbers are equal."); 17 } 18 else 19 { 20 System.out.println("Numbers are not equal!"); 21 } 22 } 23}
回答1件
あなたの回答
tips
プレビュー