;; This buffer is for notes you don't want to save, and for Lisp evaluation. ;; If you want to create a file, visit that file with C-x C-f, ;; then enter the text in that file's own buffer. while ( 条件 ) { 処理 } 開始 | +----->+ | | | 「条件」をチェック ---+ | | 成立 | | v | 不成立 | 処理をする | | | | +------+ | v おわり while ( 条件 ) { 処理1 if ( 脱出条件 ) { break; } 処理2 } while ( 条件 ) { 処理1 if ( 脱出条件 ) { なんらかの形で、条件が成立するようにする } else { 処理2 } } i = 1; while ( i <= n ) { ... if ( i == 20 ) { break; } ... i++; } i = 1; while ( i <= n ) { ... if ( i == 20 ) { i = n + 1; } else { ... i++; } } 開始 | +----->+ | | | 「条件」をチェック --------+ | | 成立 | | v | 不成立 | 処理1をする | | | | | 「脱出条件」チェック-----> | | | 成立時:break | | 処理2をする | | | | +------+ | v おわり while ( 条件 ) { 処理1 if ( 継続条件 ) { continue; } 処理2 } 開始 | +----->+ | | | 「条件」をチェック --------+ | | 成立 | | v | 不成立 | 処理1をする | | | | |<-- 「継続条件」チェック | | | 成立時:continue | | 処理2をする | | | | +------+ | v おわり while ( 条件 ) { 処理1 if ( 継続条件 ) { continue; } 処理2 } while ( 条件 ) { 処理1 if ( 継続条件 ) { /* なにもしない */ } else { 処理2 } } for ( 初期化; 条件判定; 更新 ) { 処理 } 初期化 while ( 条件判定 ) { 処理 更新 } 開始 | +----->+ | | | 「条件」をチェック --------+ | | 成立 | | v | 不成立 | 処理1をする | | | | |<-- 「継続条件」チェック | | | 成立時:continue | | 処理2をする | | | | +------+ | v おわり for ( 初期化; 条件; 更新 ) { 処理1 if ( 継続条件 ) { continue; } 処理2 } 開始 | 初期化 | +----->+ | | | 「条件」をチェック --------+ | | 成立 | 更新 v | 不成立 | 処理1をする | | | | |<-- 「継続条件」チェック | | | 成立時:continue | | 処理2をする | | | | +------+ | v おわり 初期化 whie ( 条件 ) { 処理1 if ( 継続条件 ) { continue; } 処理2 更新 } 開始 | 初期化 | +----->+ | | | 「条件」をチェック --------+ | | 成立 | | v | 不成立 | 処理1をする | | | | |<-- 「継続条件」チェック | | | 成立時:continue | | 処理2をする | | | | | 更新 | +------+ | v おわり === 家の奥さん 状態 : 機嫌 良い, 普通、悪い 入力 褒める 貶す おねだり +-- (貶す) <----+ +--------+ | ^ | | v | 悪い <- (貶す) - 普通 - (ほめる) -> 良い | ^ ^ | v | | v +--> (ほめる)----+ +---------+ 良い 普通 悪い 褒める 良い、照れる 良い、機嫌がよい 普通、機嫌がよい 貶す 普通、機嫌悪く 悪い、機嫌悪く 悪い、怒りだす おねだり 普通、やる 普通、まよう 悪い、やらない 自動販売機 状態 : 入金額 0 〜 入力 1 : 1 円 5 : 5 円 m : 払い戻し b : 買う 1 5 m b 0 1,- 5,- 0,- 0,- 1-6 +1,- +5,- 0,1-6 1-6,- 7- +1,- +5,- 0,7- 7 減って,物を出す [_a-zA-Z][_a-zA-Z0-9]* 当て嵌る例 : _, _ab123, a123, xyz 当て嵌らない例 : 1, 1abc, 134, abc#111 正規表現で表す事のできるパターンの判定は、実は、状態マシンで行える。 状態 0 : 何も入っていない 1 : _ か、英字が入ってきた -1 : もう、すでに、識別子でない 0 1 -1 _a-zA-Z 1 1 -1 0-9 -1 1 -1 * -1 -1 -1 もし、最後に 1 の状態であれば、文字列は、識別子だった