SlideShare a Scribd company logo
基礎情報処理演習 (7)
  演算子と分岐

   山本和英
 長岡技術科学大学
               1
演算子
(一部再掲)



         2
(再掲)演算子

 演算子とは、計算などをする記号のことです。


(再掲)算術演算子

 +   加算
 -   減算
 *   乗算
 /   除算
 %   余り (7 % 3 = 1)
                         3
(再掲)割り算に注意!

整数どうしの除算時には注意。例えば、
printf (“%fn”, 5/7);

を実行すると、0.0000 が出力されるので、小数
点以下も出力させたい時は下記のように書く。
printf (“%fn”, (double) 5/7);

                                 4
関係演算子

 <, <= (≦)
 >, >= (≧) の4つ。


等価演算子

 ==   等しい
      (代入演算子 = と混同しないこと)

 !=   等しくない
                           5
論理演算子

 &&   かつ     AND
 ||   もしくは   OR
 !    ~以外    NOT


インクリメント・デクリメント演算子

 ++   加算     a++;   a+=1;   a=a+1;
 --   減算     a--;   a-=1;   a=a-1;

                                     6
(再掲)キャスト演算子

型変換したい時に使う。

printf (“%fn”, (double) 5 / 7);


 整数の 5 を実数 (5.0) と理解することで、
       割り算を実数で行う。

                                   7
(再掲)代入演算子

 単純代入演算子: =

 p = 0;     // 普通の使い方
 a = b = 3; // 多重代入もできる

 複合代入演算子: += -= *= /= など

 k += 1;   // k=k+1; と同じ


                           8
if文による分岐




           9
if文の繰り返し


if (条件){


}else{     条件


}

                10
else if による多方向分岐

  if (条件1){        条件1


  }else if(条件2){   条件2


  }else{           その他


  }
                         11
条件には何を書くか?

 aa > 100       シンプルな例
 a<10 && b<20   論理演算子を使った例
 a              a!=0 (下記参照)
気になる人に補足

if文の条件部は、条件が正しいかどうかという「計算」をしている。
つまり条件判断もC言語にとっては「計算」である。そして、「計算」
した結果正しければ1(0以外)、間違っていれば0を返す。もし if
(a) などと書くとaの値自身が条件判断の結果と理解し、その値が
0でなければ条件が正しいという意味になるので、し、はaの値が0
でなければ if(a!=0)と同じ意味になる、というわけ。
                                12
while文による繰り返し



                13
while文の繰り返し


while (条件){

              条件

}


                   14
do-while文による繰り返し



                   15
do-while文の繰り返し


do {

                 条件

} while (条件);


                      16
break と continue



                   17
break文はループを終了させる


 while (…){
   …
   if (条件) break;
   …
 }                   ループを
                     完全に
                    やめてしまう


                             18
continue文はループをスキップ


 while (…){          ループ1回分の
                      残りをパス
     …
     if (条件) continue;
     …
                         ここの処理を
                         1回分飛ばす
 }
                                  19
breakとcontinueの使い方
● 繰り返しを行う for文、while文、do-while文の
  中で使えます。
● だいたい if (条件) break; あるいは if

  (条件) continue; などと if文とセットで使
  います。
● 2重以上のループの中でbreakを使うと、一番内

  側のループ一つだけ抜けます。一気に全部抜け
  たりはしません。
● for(;;) や while(1) などの無限ループを抜け

  出す時にbreak文をよく使います。
                                   20

More Related Content

What's hot

超LINQ入門
超LINQ入門超LINQ入門
超LINQ入門
yone64
 
言語処理系入門3
言語処理系入門3言語処理系入門3
言語処理系入門3
Kenta Hattori
 
言語処理系入門€2
言語処理系入門€2言語処理系入門€2
言語処理系入門€2
Kenta Hattori
 
モナドハンズオン前座
モナドハンズオン前座モナドハンズオン前座
モナドハンズオン前座
bleis tift
 
C言語講習会1
C言語講習会1C言語講習会1
C言語講習会1
odenhadengaku
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
bleis tift
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1
Kenta Hattori
 
第1回Java講義資料
第1回Java講義資料第1回Java講義資料
第1回Java講義資料
XMLProJ2014
 
Char型
Char型Char型
yieldとreturnの話
yieldとreturnの話yieldとreturnの話
yieldとreturnの話
bleis tift
 
JavaScript関数のあれこれ
JavaScript関数のあれこれJavaScript関数のあれこれ
JavaScript関数のあれこれ
iPride Co., Ltd.
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
和弘 井之上
 
Erlangやってみた
ErlangやってみたErlangやってみた
Erlangやってみた
ina job
 
Rの初歩: 4. 関数とプログラミング
Rの初歩: 4. 関数とプログラミングRの初歩: 4. 関数とプログラミング
Rの初歩: 4. 関数とプログラミング
Teiko Suzuki
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング
道化師 堂華
 
変分法
変分法変分法
変分法
弘毅 露崎
 

What's hot (20)

超LINQ入門
超LINQ入門超LINQ入門
超LINQ入門
 
言語処理系入門3
言語処理系入門3言語処理系入門3
言語処理系入門3
 
言語処理系入門€2
言語処理系入門€2言語処理系入門€2
言語処理系入門€2
 
#5:プログラミングの基本
#5:プログラミングの基本#5:プログラミングの基本
#5:プログラミングの基本
 
モナドハンズオン前座
モナドハンズオン前座モナドハンズオン前座
モナドハンズオン前座
 
C言語講習会1
C言語講習会1C言語講習会1
C言語講習会1
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
 
20081120 lt11th ace
20081120 lt11th ace20081120 lt11th ace
20081120 lt11th ace
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1
 
第1回Java講義資料
第1回Java講義資料第1回Java講義資料
第1回Java講義資料
 
Char型
Char型Char型
Char型
 
C言語よくある誤り
C言語よくある誤りC言語よくある誤り
C言語よくある誤り
 
yieldとreturnの話
yieldとreturnの話yieldとreturnの話
yieldとreturnの話
 
JavaScript関数のあれこれ
JavaScript関数のあれこれJavaScript関数のあれこれ
JavaScript関数のあれこれ
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„
 
For
ForFor
For
 
Erlangやってみた
ErlangやってみたErlangやってみた
Erlangやってみた
 
Rの初歩: 4. 関数とプログラミング
Rの初歩: 4. 関数とプログラミングRの初歩: 4. 関数とプログラミング
Rの初歩: 4. 関数とプログラミング
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング
 
変分法
変分法変分法
変分法
 

Similar to #7:演算子と分岐

講座C入門
講座C入門講座C入門
講座C入門
Tokai University
 
プログラマ講習第2回
プログラマ講習第2回プログラマ講習第2回
プログラマ講習第2回Yuma Yoshimoto
 
X hago2 shortcoding 20110827
X hago2 shortcoding 20110827X hago2 shortcoding 20110827
X hago2 shortcoding 20110827
uskey512
 
はじめての確率論 測度から確率へ 57~60ページ ノート
はじめての確率論 測度から確率へ 57~60ページ ノートはじめての確率論 測度から確率へ 57~60ページ ノート
はじめての確率論 測度から確率へ 57~60ページ ノート
Chihiro Kusunoki
 
ruby for_if_while
ruby for_if_whileruby for_if_while
ruby for_if_while
YushiroDodo
 
Java班講義資料第2回
Java班講義資料第2回Java班講義資料第2回
Java班講義資料第2回
XMLProJ2014
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
Ransui Iso
 
ゆるふわScalaコップ本読書会 第7章
ゆるふわScalaコップ本読書会 第7章ゆるふわScalaコップ本読書会 第7章
ゆるふわScalaコップ本読書会 第7章
Yuta Yokoi
 
JSX / Haxe / TypeScript
JSX / Haxe / TypeScriptJSX / Haxe / TypeScript
JSX / Haxe / TypeScript
bleis tift
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
 
Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】
Yukiko Kato
 
cp-5. 繰り返し計算
cp-5. 繰り返し計算cp-5. 繰り返し計算
cp-5. 繰り返し計算
kunihikokaneko1
 

Similar to #7:演算子と分岐 (15)

講座C入門
講座C入門講座C入門
講座C入門
 
プログラマ講習第2回
プログラマ講習第2回プログラマ講習第2回
プログラマ講習第2回
 
X hago2 shortcoding 20110827
X hago2 shortcoding 20110827X hago2 shortcoding 20110827
X hago2 shortcoding 20110827
 
はじめての確率論 測度から確率へ 57~60ページ ノート
はじめての確率論 測度から確率へ 57~60ページ ノートはじめての確率論 測度から確率へ 57~60ページ ノート
はじめての確率論 測度から確率へ 57~60ページ ノート
 
ruby for_if_while
ruby for_if_whileruby for_if_while
ruby for_if_while
 
Java班講義資料第2回
Java班講義資料第2回Java班講義資料第2回
Java班講義資料第2回
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
 
[xDNCL] 配布資料
[xDNCL] 配布資料[xDNCL] 配布資料
[xDNCL] 配布資料
 
ゆるふわScalaコップ本読書会 第7章
ゆるふわScalaコップ本読書会 第7章ゆるふわScalaコップ本読書会 第7章
ゆるふわScalaコップ本読書会 第7章
 
JSX / Haxe / TypeScript
JSX / Haxe / TypeScriptJSX / Haxe / TypeScript
JSX / Haxe / TypeScript
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
 
If advance
If advanceIf advance
If advance
 
Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】Javaプログラミング入門【第2回】
Javaプログラミング入門【第2回】
 
Php3
Php3Php3
Php3
 
cp-5. 繰り返し計算
cp-5. 繰り返し計算cp-5. 繰り返し計算
cp-5. 繰り返し計算
 

More from 長岡技術科学大学 自然言語処理研究室

小学生の読解支援に向けた複数の換言知識を併用した語彙平易化と評価
小学生の読解支援に向けた複数の換言知識を併用した語彙平易化と評価小学生の読解支援に向けた複数の換言知識を併用した語彙平易化と評価
小学生の読解支援に向けた複数の換言知識を併用した語彙平易化と評価
長岡技術科学大学 自然言語処理研究室
 
小学生の読解支援に向けた語釈文から語彙的換言を選択する手法
小学生の読解支援に向けた語釈文から語彙的換言を選択する手法小学生の読解支援に向けた語釈文から語彙的換言を選択する手法
小学生の読解支援に向けた語釈文から語彙的換言を選択する手法
長岡技術科学大学 自然言語処理研究室
 
Selecting Proper Lexical Paraphrase for Children
Selecting Proper Lexical Paraphrase for ChildrenSelecting Proper Lexical Paraphrase for Children
Selecting Proper Lexical Paraphrase for Children
長岡技術科学大学 自然言語処理研究室
 
Automatic Selection of Predicates for Common Sense Knowledge Expression
Automatic Selection of Predicates for Common Sense Knowledge ExpressionAutomatic Selection of Predicates for Common Sense Knowledge Expression
Automatic Selection of Predicates for Common Sense Knowledge Expression
長岡技術科学大学 自然言語処理研究室
 
用言等換言辞書を用いた換言結果の考察
用言等換言辞書を用いた換言結果の考察用言等換言辞書を用いた換言結果の考察
用言等換言辞書を用いた換言結果の考察
長岡技術科学大学 自然言語処理研究室
 
用言等換言辞書の構築
用言等換言辞書の構築用言等換言辞書の構築
質問意図によるQAサイト質問文の自動分類
質問意図によるQAサイト質問文の自動分類質問意図によるQAサイト質問文の自動分類
質問意図によるQAサイト質問文の自動分類
長岡技術科学大学 自然言語処理研究室
 
役所からの公的文書に対する「やさしい日本語」への変換システムの構築
役所からの公的文書に対する「やさしい日本語」への変換システムの構築役所からの公的文書に対する「やさしい日本語」への変換システムの構築
役所からの公的文書に対する「やさしい日本語」への変換システムの構築
長岡技術科学大学 自然言語処理研究室
 
対訳コーパスから生成したワードグラフによる部分的機械翻訳
対訳コーパスから生成したワードグラフによる部分的機械翻訳対訳コーパスから生成したワードグラフによる部分的機械翻訳
対訳コーパスから生成したワードグラフによる部分的機械翻訳
長岡技術科学大学 自然言語処理研究室
 
用言等換言辞書を人手で作りました
用言等換言辞書を人手で作りました用言等換言辞書を人手で作りました
用言等換言辞書を人手で作りました
長岡技術科学大学 自然言語処理研究室
 
文字列の出現頻度情報を用いた分かち書き単位の自動取得
文字列の出現頻度情報を用いた分かち書き単位の自動取得文字列の出現頻度情報を用いた分かち書き単位の自動取得
文字列の出現頻度情報を用いた分かち書き単位の自動取得
長岡技術科学大学 自然言語処理研究室
 
「やさしい日本語」変換システムの試作
「やさしい日本語」変換システムの試作「やさしい日本語」変換システムの試作
「やさしい日本語」変換システムの試作
長岡技術科学大学 自然言語処理研究室
 
常識表現となり得る用言の自動選定の検討
常識表現となり得る用言の自動選定の検討常識表現となり得る用言の自動選定の検討
常識表現となり得る用言の自動選定の検討
長岡技術科学大学 自然言語処理研究室
 
動詞意味類型の曖昧性解消に向けた格フレーム情報との関連調査
動詞意味類型の曖昧性解消に向けた格フレーム情報との関連調査動詞意味類型の曖昧性解消に向けた格フレーム情報との関連調査
動詞意味類型の曖昧性解消に向けた格フレーム情報との関連調査
長岡技術科学大学 自然言語処理研究室
 
二格深層格の定量的分析
二格深層格の定量的分析二格深層格の定量的分析
大規模常識知識ベース構築のための常識表現の自動獲得
大規模常識知識ベース構築のための常識表現の自動獲得大規模常識知識ベース構築のための常識表現の自動獲得
大規模常識知識ベース構築のための常識表現の自動獲得
長岡技術科学大学 自然言語処理研究室
 
文脈の多様性に基づく名詞換言の提案
文脈の多様性に基づく名詞換言の提案文脈の多様性に基づく名詞換言の提案
文脈の多様性に基づく名詞換言の提案
長岡技術科学大学 自然言語処理研究室
 
保険関連文書を対象とした文章校正支援のための変換誤り検出
保険関連文書を対象とした文章校正支援のための変換誤り検出保険関連文書を対象とした文章校正支援のための変換誤り検出
保険関連文書を対象とした文章校正支援のための変換誤り検出
長岡技術科学大学 自然言語処理研究室
 
Developing User-friendly and Customizable Text Analyzer
Developing User-friendly and Customizable Text AnalyzerDeveloping User-friendly and Customizable Text Analyzer
Developing User-friendly and Customizable Text Analyzer
長岡技術科学大学 自然言語処理研究室
 
普通名詞換言辞書の構築
普通名詞換言辞書の構築普通名詞換言辞書の構築

More from 長岡技術科学大学 自然言語処理研究室 (20)

小学生の読解支援に向けた複数の換言知識を併用した語彙平易化と評価
小学生の読解支援に向けた複数の換言知識を併用した語彙平易化と評価小学生の読解支援に向けた複数の換言知識を併用した語彙平易化と評価
小学生の読解支援に向けた複数の換言知識を併用した語彙平易化と評価
 
小学生の読解支援に向けた語釈文から語彙的換言を選択する手法
小学生の読解支援に向けた語釈文から語彙的換言を選択する手法小学生の読解支援に向けた語釈文から語彙的換言を選択する手法
小学生の読解支援に向けた語釈文から語彙的換言を選択する手法
 
Selecting Proper Lexical Paraphrase for Children
Selecting Proper Lexical Paraphrase for ChildrenSelecting Proper Lexical Paraphrase for Children
Selecting Proper Lexical Paraphrase for Children
 
Automatic Selection of Predicates for Common Sense Knowledge Expression
Automatic Selection of Predicates for Common Sense Knowledge ExpressionAutomatic Selection of Predicates for Common Sense Knowledge Expression
Automatic Selection of Predicates for Common Sense Knowledge Expression
 
用言等換言辞書を用いた換言結果の考察
用言等換言辞書を用いた換言結果の考察用言等換言辞書を用いた換言結果の考察
用言等換言辞書を用いた換言結果の考察
 
用言等換言辞書の構築
用言等換言辞書の構築用言等換言辞書の構築
用言等換言辞書の構築
 
質問意図によるQAサイト質問文の自動分類
質問意図によるQAサイト質問文の自動分類質問意図によるQAサイト質問文の自動分類
質問意図によるQAサイト質問文の自動分類
 
役所からの公的文書に対する「やさしい日本語」への変換システムの構築
役所からの公的文書に対する「やさしい日本語」への変換システムの構築役所からの公的文書に対する「やさしい日本語」への変換システムの構築
役所からの公的文書に対する「やさしい日本語」への変換システムの構築
 
対訳コーパスから生成したワードグラフによる部分的機械翻訳
対訳コーパスから生成したワードグラフによる部分的機械翻訳対訳コーパスから生成したワードグラフによる部分的機械翻訳
対訳コーパスから生成したワードグラフによる部分的機械翻訳
 
用言等換言辞書を人手で作りました
用言等換言辞書を人手で作りました用言等換言辞書を人手で作りました
用言等換言辞書を人手で作りました
 
文字列の出現頻度情報を用いた分かち書き単位の自動取得
文字列の出現頻度情報を用いた分かち書き単位の自動取得文字列の出現頻度情報を用いた分かち書き単位の自動取得
文字列の出現頻度情報を用いた分かち書き単位の自動取得
 
「やさしい日本語」変換システムの試作
「やさしい日本語」変換システムの試作「やさしい日本語」変換システムの試作
「やさしい日本語」変換システムの試作
 
常識表現となり得る用言の自動選定の検討
常識表現となり得る用言の自動選定の検討常識表現となり得る用言の自動選定の検討
常識表現となり得る用言の自動選定の検討
 
動詞意味類型の曖昧性解消に向けた格フレーム情報との関連調査
動詞意味類型の曖昧性解消に向けた格フレーム情報との関連調査動詞意味類型の曖昧性解消に向けた格フレーム情報との関連調査
動詞意味類型の曖昧性解消に向けた格フレーム情報との関連調査
 
二格深層格の定量的分析
二格深層格の定量的分析二格深層格の定量的分析
二格深層格の定量的分析
 
大規模常識知識ベース構築のための常識表現の自動獲得
大規模常識知識ベース構築のための常識表現の自動獲得大規模常識知識ベース構築のための常識表現の自動獲得
大規模常識知識ベース構築のための常識表現の自動獲得
 
文脈の多様性に基づく名詞換言の提案
文脈の多様性に基づく名詞換言の提案文脈の多様性に基づく名詞換言の提案
文脈の多様性に基づく名詞換言の提案
 
保険関連文書を対象とした文章校正支援のための変換誤り検出
保険関連文書を対象とした文章校正支援のための変換誤り検出保険関連文書を対象とした文章校正支援のための変換誤り検出
保険関連文書を対象とした文章校正支援のための変換誤り検出
 
Developing User-friendly and Customizable Text Analyzer
Developing User-friendly and Customizable Text AnalyzerDeveloping User-friendly and Customizable Text Analyzer
Developing User-friendly and Customizable Text Analyzer
 
普通名詞換言辞書の構築
普通名詞換言辞書の構築普通名詞換言辞書の構築
普通名詞換言辞書の構築
 

#7:演算子と分岐