前提
ここに質問の内容を詳しく書いてください。
こんにちわ。JAVAを独学勉強してます。
発生している問題
今回、スキャナーで多数の文字列を取得する勉強を行ってます
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //配列で1~10の数があるときに配列を作って、 int[] a = new int[10]; //for文でint型nextInt()を使い、1~10を繰り返し回して、数字を取得するのはわかります。 for (int i = 0; i < 10; i++) { a[i] = sc.nextInt(); } //ここから先のfor文からなぜ System.out.println(x); が 出力できて、 //なぜ、sc.close();が必要なのかが、今いち理解できてません。 //どなたかご教授ください。 //宜しくお願いします。 for (int x : a) { System.out.println(x); } sc.close(); }
出力文字
1 2 3 4 5 6 7 8 9 10
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
JAVA
質問内容はコード内でなく質問本文として書いてください。
基本として teratail は勉強を教えてもらう場所ではありません。
>なぜ System.out.println(x); が 出力できて
System.out は PrintStream で、 PrintStream.println(int) がそうするからです。
https://docs.oracle.com/javase/jp/7/api/java/io/PrintStream.html#println(int)
>なぜ、sc.close();が必要なのか
Scanner はファイルやストリーム等リソースを使うクラスで、使い終わったら後始末が必要だからです。
> for文からなぜ System.out.println(x); が 出力できて
何に疑問を抱いているのか、もう少し掘り下げていただけませんか?
標準入力と標準出力というものがあります。調べてみましょう。
「前提」のところは要件につながること、やりたいことや実現したいことを記載する場所と思います。
勉強方法を聞きたいようにみえます。
何かしら困っていることがあって解決したい問題があるのなら、その問題の発生している事柄について記載しましょう。
質問は編集できますので
こんちわ。
for (int x : a) {でなぜ、System.out.println(x)にa[i] = sc.nextInt();が取れるのが、
理解できてません
質問は編集できますので
回答1件