画面下の「▶」で再生開始、「⏸」で一時停止
画面右下の「>」で次頁へ、「<」で前頁へ
青字下線の部分は、まとめプリントの穴埋め
「作業」のところでは、ファイルをダウンロードしてコンパイル・実行
教科書 pp.43–71
(教 pp.44–65)
(教 p.44)
if ( 式1 ) 文1
という形のこと
作業: List 3-1 を実行する(入力として 5 の倍数とそうでないものを試す)
(教 p.46)
if ( 式1 ) 文1 else 文2
という形のこと
作業: List 3-3 を実行する(入力として 5 の倍数とそうでないものを試す)
if 文 | if 〜 else 文 |
---|---|
作業: まとめのプリント Q 3.1.1 をやってみる
(教 p.50)
「==
」演算子
「!=
」演算子
==
」と逆に等しくないかどうかを判定する作業:
List 3-6
を実行する
(2つの入力値が等しいときとそうでないときを試す)
(教 p.52)
以下の4つがある。
< |
左辺が右辺よりも小さいとき真 |
> |
左辺が右辺よりも大きいとき真 |
<= |
左辺が右辺よりも小さいか等しいとき真 |
>= |
左辺が右辺よりも大きいか等しいとき真 |
「≦
」「≧
」はもちろん
「=<
」とか「=>
」という演算子はない
(教 p.52)
if (no == 0)
puts("その数は 0です。");
else if (no > 0)
puts("その数は正です。");
else
puts("その数は負です。");
単に else の次の文が、また if 文になっているだけ
作業:
List 3-9,
List 3-10,
を実行する
(正の数、0、負の数、奇数、偶数などを試す)
作業: まとめのプリント Q 3.1.2 をやってみる
(教 p.53)
if (no == 0)
puts("その数は 0です。");
else if (no > 0)
puts("その数は正です。");
else
puts("その数は負です。");
単に else の次の文が、また if 文になっているだけ
作業: List 3-9 , List 3-10, を実行する(正の数、0、負の数、奇数、偶数などを試す)
作業: まとめのプリント Q 3.1.2 をやってみる
(教 p.55)
式の値を調べる(ために実行する)ことを 評価する (evaluate) という
(教 pp.56–57)
教科書を読んでおくこと。
(教 p.58)
式1 ? 式2 : 式3
まず 式1 を評価し、その値が
非 0 (真) | であれば、 式2を評価して、その値を返す 式3は評価しない |
0 (偽) | であれば、 式3を評価して、その値を返す 式2は評価しない |
作業: List 3-14 を実行する(入力の大小の順を変えて試す)
(教 p.60)
文の並びを波括弧 (ブレース —
「{
」 と「}
」 —)
で囲んだもの
作業: List 3-17 を実行する(入力の大小の順を変えて試す)
(教 p.61)
if 文の制御する文 (後述の while 文、for 文などでも同様) は、たとえ一つの文でも (間違いを避けるため)波括弧で囲んでブロックにする
△ 望ましくないスタイル | ◎ 望ましいスタイル |
---|---|
|
|
教科書の例題は望ましいスタイルでないものが多いので、特に注意する。 この授業の課題の解答は「望ましいスタイル」で提出すること。 (教科書 p.5961 下のほうの ▷)
(まとめのプリント)
作業:
addtime.c
を実行する
(繰り上がりが起こる/起こらない、いくつかの入力を試す)
作業: まとめのプリント Q 3.1.3 をやってみる
(まとめのプリント)
作業:
maxswap.c
を実行する
(入力の大小の順を変えていくつかの入力を試す)
作業: まとめのプリント Q 3.1.4 をやってみる
if (h < 12)
if (h < 6) printf("A");
else printf("B")
は、どのように文法的に解釈されるか?
#1: | #2: |
|
|
作業: まとめのプリント Q 3.1.5 をやってみる
(教 p.62)
演算子 | 呼び方 | 説明 |
---|---|---|
&& |
論理 AND 演算子 かつ |
左オペランドを評価して、0 (偽) であれば、 0 (偽) を返す。非 0 (真) であれば、 右オペランドを評価して 0 ならば 0 を、 非 0 なら 1 を返す |
|| |
論理 OR 演算子 または |
左オペランドを評価して、非 0 (真) であれば 1を返す。0 (偽) であれば、 右オペランドを評価して 0 ならば 0 を、 非 0 なら 1 を返す |
左右非対称 — つまり左オペランドを評価して値が決まれば、 右オペランドは評価しない(短絡評価)
作業: List 3-18 を実行する(1 から 12までの入力を試す)
chap03/summary1.c も見ておく
(教 p.65)
作業: まとめのプリント Q 3.1.6 をやってみる
(教 pp.66–69)
(教 p.66)
ある式の値 (整数型) によって、プログラムの流れを複数に分岐する
switch ( 式1 ) 文1
文1は、通常、複合文(ブロック)である
case
と
「:
」の間に書かれた定数と一致するところにジャンプするdefault:
にジャンプするcase
〜:
や default:
のようにプログラムの飛び先を示す目印をラベル (名札) と呼ぶ
作業: List 3-20 を実行する(3 で割った余りの異なる複数の入力を試す)
作業: List 3-21 を実行する(いくつかの整数の入力を試す)
作業: まとめのプリント Q 3.2.1 をやってみる
(教 p.69)
教科書を読んでおくこと
分類 | 一般形 | 補足説明 |
---|---|---|
if 文 | if ( 式 ) 文 |
(教 p.4244) |
else 付き if 文 | if ( 式 ) 文 else 文 |
(教 p.4446) |
複合文(ブロック) | { 宣言 … 文 … } |
(教 p.5860) |
switch 文 | switch ( 式 ) 文 |
(教 p.6466) |
ラベル付き文 | case 整数リテラル : 文default : 文
|
(教 p.6567) |
break 文 | break ; |
(教 p.6567) |
分類 | 一般形 | 補足説明 |
---|---|---|
三項演算子 | 式 ? 式 : 式 |
(教 p.5658) |