Javaの授業 6日目 [ for文 ]
復習
switch文
【 式 】
↓ ↓ ↓
定数1 定数2 その他
↓ ↓ ↓
処理1 処理2 処理3
↓
処理4
※switch文で使用できる式は答えが整数になるもの。
for文
① for文の動き
初期化
↓
→→→【 条件式 】
↑ [true]↓ ↓[false]
↑ 処理 処理を抜けて次へ
↑ ↓
←←次の一歩
②for文の構文
for(初期化;条件式;次の一歩){
処理
}
③初期化、条件式、次の一歩とは
初期化 for文の中で使用する変数を初期化する
条件式 条件が成り立つ間for文が実行され、処理が実行される
次の一歩 処理の最後に次の一歩の状態を決める
例
-----------------------------------------------
public class Test {
public static void main(String[] args);{
for(int i = 0;i < 10;i++){
System.out.println(i);
}
}
}
----------------------------------------------
※処理を追ってみる
■int i = 0 …初期化
■i < 10 …条件式
□0 < 10
□→ true
■System.out.println(i)…処理
□System.out.println(0);
□コマンドプロンプトに「0」が表示
■i++ …次の一歩
□i = i + 1
□i = 0 + 1
□i = 1
■i < 10 …条件式
□1 < 10
□→[true]
■System.out.println(i);…処理
□System.out.println(1);
□コマンドプロンプトに「1」が表示
■i++ …次の一歩
□i = i + 1
□i = 1 + 1
□i = 2
■i < 10
□2 < 10
□→[true]
■System.out.println(i);…処理
□System.out.println(2);
□コマンドプロンプトに「2」が表示
~~~~中~~~~~~~~~~~~~略~~~~~
■i++ …次の一歩
□i = i + 1
□i = 9 + 1
□i = 10
■i < 10
□10 < 10
□→[false]
例2 処理を追う
-----------------------------------------------
public class Sample2{
public static void main(String[] args){
int sum = 0;
for(int i = 1;i <= 10; i++){
sum = sum + i;
}
System.out.println(sum);
}
}
-----------------------------------------------
sum = 0 → 1→ 3→ 6→10→15→21→28→36→45→55
i = 1 → 2→ 3→ 4→ 5→ 6→ 7→ 8→ 9→10
例3 for文の中にfor文
----------------------------------------------
public class Sample3{
public static void main(String[] args){
for(int k = 1; k <= 3; k++){
for(int l = 1; l <= 3; l++){
System.out.println(k * l);
}
}
}
}
---------------------------------------------
k = 1 → = 2 → = 3
l = 1 → 2→ 3 = 1 → 2→ 3 = 1→ 2→ 3
k * l = 1 → 2→ 3 = 2 → 4→ 6 = 3→ 6→ 9
※2重ループの注意点
for文は入るたびに初期化される。
わからなくなりそうならとにかく丁寧に読む。
Javaの授業 5日目 その2 [ switch文 ]
長くなりそうだったので分割。後半。
ひとまず5日目の感想。
ビデオ学習で先に進んでる+初めての土日を挟んでの週明けの授業。
ということで懸念通り色々とうろ覚え。
とりあえず授業についていければ半年で身につくとのこと。
ある程度先には積極的に進みつつ当日授業でやった内容に関しては
完璧にしていくぐらいのつもりがいいかも。
あと、教科書の内容を見ていても現段階で覚えなくても良いことという
のが結構出てくるが、その取捨選択が難しいです。
以下授業内容。
switch文の章。
switch (整数の定数式) {
case 1: ※ ";"(セミコロン)ではなく":"(コロン)
処理1; ←n==1の時の処理
break;
case 2:
処理2; ←n==2の時の処理
break;
default:
処理3 ←caseに値のない時の処理
break;
}
※break →switch文の{}から抜け出す。
例
-------------------------------------
補足(表記について)
x += 10 という表記は x = x + 10 と同じ意味。
-------------------------------------
public class Test3{
public static void main(String[] args){
int x = 2;
int result = 0;
switch(x) {
case 1: //→ x = 1 ではないので実行されない。
result += 10;
break;
case 2: //→ x = 2 なので実行。
result += 20;
break;
default: //→ 上でbreak;されたので飛ばされる。
result += 30;
break;
}
System.out.println(result);
}
}
------------------------------------
caseの中身(定数式)は整数しか使用できない。
文字型
char型を使用できる。
char x = 'A' ←文字は''で括られる。
※char型は内部的には整数として処理されている。
(数字に置き換えることができる。)
問題:実行結果を考えてみる。
------------------------------------
public class Test4{
public static void main(String[] args){
int x = 1;
switch(x * 2){
case 1:
System.out.println("1");
case 2:
System.out.println("2");
case 3:
System.out.println("3"):
break:
default:
System.out.println("default");
}
}
}
------------------------------------
答え)case2でbreakされないのでcase3での処理も実行される。
結果実行すると、
2
3
と表記される。
※条件が一致したところからbreakがあるところまでの処理が
すべて実行されてしまう。
Javaの授業 5日目 その1 [ if文の復習 ]
土日で先週分の復習を!
と思ってたもののJavaを使える環境設定をしてちょっと触った程度でした(´A`
講義内容。
if文の復習
if (条件式){
処理1;
} else {
処理2;
}
条件式に当てはまる時は [ true ]
当てはまらない時は [ false ] を返す
[ true ]が返されれば処理1へ。
[ false ]ならば処理1を実行せずに次へ移る。
※個人的に引っかかったところ。
条件式が A || B (AもしくはB) の時、A,Bには[ true ],[ false ]
の値を直接入れることができるのだが、
例えば (x > 5 || false) となっていて、x = 3の時、
日本語で考えると xが5より大きい時、もしくは[ false ]の時
となる為、返される結果が[ true ]になる気がしてしまった。
実際は両辺に数値としての[ false ]が入っている状態。
false ll false であれば結果は [ false ]。
今考えると当たり前なんですけどね…
再確認。
|| (もしくは) は、左辺、右辺のどちらかが[ true ]であれば[ true ]を返す。
&&(かつ) は、左辺、右辺のどちらかが[ false ] であれば[ false ]を返す。
練習。プログラムの実行手順を書き出す。
--------------------------------------
public class Test {
public static void main(String[] args) {
int x = 5;
if(x < 8) { // 5 < 8 → true
x = x + 10; //x = 5 + 10 →x = 15
} else {
x = x + 20;
}
System.out.println(x);
}
}
--------------------------------------
intの値が(x < 8) であれば true → x = x + 10 を実行
intの値が (x < 8) でなければ false → x = x + 20 を実行
※プログラムは必ず飛ばさずに読むこと。
その後必ず値を変える等の変更を加えること。
練習2 プログラムの実行手順を書き出す
--------------------------------------
public class Test{
public static void main(String[] args){
int x = 70;
if(x > 0 && x < 50){
x = x + 100;
}
System.out.println(x);
}
}
--------------------------------------
x > 0
70 > 0
true
x < 50
70 < 50
false
true && false
false
x = x + 100 は実行されない。