noblog!バンコク生活はなぜ良いのか

生のバンコク情報をおとどけ!

ゼロから始めるJava学習 in バンコク その11 for ついに足踏み・・・

もうメシは食ったかの?儂はノブじゃ。

f:id:nobubkk:20180803142726p:plain

儂はいま「paizaラーニング」をメイン教材、「マンガPG」「ドットインストール」をサブ教材としてJavaの勉強に取り組んでいる。

プログラミング学習歴については、本格的なものはゼロであるが頑張って勉強していきたい。

 

 

 

Java入門編3 #08 複数データを読み込んでみよう

paiza.jp

#07で学習した、標準入力の呪文は何とか覚えた。

何度も打ち込んでがんばって覚えた。

 

Dランクのテストを受けられると案内が出るが、いったん先に進めていきたいと思う。

 

まず標準入力の復習だが、import java.util.*;を先頭に打ち込んだあと、

Scanner sc=new Scanner(System.in);

String date=sc.next();

System.out.println("hello "+date);

 

これで入力画面に入力した文字(date)が「hello 〇〇」と出力される。

 

ところが、入力画面に2行あると2行目は表示できない。

2行目を表示させるためには、先のコードを少し変えてくる返す。

入力画面には、

〇〇

△△

と入力しておく。

 

Scanner sc=new Scanner(System.in);

String date=sc.next();

System.out.println("hello "+date);

date=sc.next();

System.out.println("hello "+date);

これで

hello 〇〇

hello △△

と出力された。

 

ここで疑問なのは、2行目繰り返しのString dateStringを消したことだ。

レッスンではさらっと「余分なものは消去して・・・」と言っていたが、これは余分なのか??

このStringとかintとかないとエラーが出るって教わってたんだけど??

そして、1行目の文字列の変数名をdateとしているのに、2行目の文字列の名前もdateと同じ名前にしている。

これはなぜだろうか??

dateは変数名ではないのだろうか。

だが、まあ説明してくれないので仕方がない。

そういうものだと思って先に進もう。

 

ループ処理で行数を増やして出力

次は繰り返しのループを使って行数を増やしても表示できるようにする。

入力画面には

3

paiza

Java

nobu

と入力しておく。

 

Scanner sc=new Scanner(System.in);

int count =sc.nextInt();

System.out.println("データ個数 "+count);

String date;

for (int i=0; i<count; i++){

date =sc.next();

System.out.println("hello "+date);

}

これも微妙によく分からないのが、ループ処理に入る前に一度String dateとしてStringであることを決めてしまえばそのあとのdateにはStringをつける必要はないのだろうか??

また、何行文字列が出てきても、変数名はdateでいいのはなぜ??

んー、よく分からないがこれも仕方がないので先に進もう。

 

このあとRPGの攻撃シーンを再生してみた。

まあ、それは特に問題はなかったのだが、演習問題でついに足踏みをしてしまった。

 

演習問題突入!しかしここで遂にnobuにも壁があらわれた

問題1はOK

最初に3が入力されていて、その数字の分だけ「スライムがあらわれた」を表示させる。

まあ、問題ない。

 

しかし、問題2が儂にとっては難問である。

2行の数字が与えられる。

4

6

 

これを1つ目の数字から2つ目の数字まで1ずつ増加させながら出力したい。

答えは、

4

5

6

である。

 

が、まったく分からん。

 

 

例えば今までのように1行目を変数number1、2行目の数字を変数number2とできるなら、その2つnumber3=number2-number1と計算させて、(number3)行だけ繰り返ししてやればよい。

int number1=4;
int number2=6;
int number3=(int)(number2)-(int)(number1);
//System.out.println(number3);
for (int i=0; i<=number3;i++){
System.out.println(i+number1);
}

 

しかし、ここまで儂が習った書き方では行ごとに変数の名前を決められない(たぶん)。

行ごとの数字はすべて同じ変数名にされているので引き算などの計算式を作れない。

ここまでずっと疑問に思ってきたことが、まさしく演習問題で試されることになってしまった。

それともこの問題を解く方法へのアプローチの仕方がそもそも違うのだろうか??

 

すでに2日目。

何度考えて、いろいろ試してもできない。

ここまでの知識ではできないのではないだろうか・・・

 2日間足踏み状態。

しかし、復習しながらもう一度考えてみたい。

そしてそれでもだめなら明日はグーグル先生に聞いてみよう。

 

 

これからプログラミングの勉強を始めようと思っている方、ぜひ一緒にやっていきましょう。

今宵はここまで。また次を楽しみにしておれ。

 

 

 

ページを閉じる前に、クリックしてから閉じてね。よろしくお願いします!

にほんブログ村 海外生活ブログ タイ情報へ
にほんブログ村

にほんブログ村 海外生活ブログへ
にほんブログ村