【C++Builder Starter チュートリアルシリーズ】 シーズン2 第3回 ‟条件とループ„ [JAPAN]

Posted by on in Programming

【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„ [JAPAN]

C++Builder Starter Edition シーズン2 第3回 ‟条件とループ„

2017年1月23日より 「Delphi / C++Builder Starter チュートリアルシリーズ」 シーズン2、全9回、3月27日まで、毎週月曜日、Delphiパートが 17時00分~17時20分、 リアルタイム放送スペシャルコンテンツが5分~10分、

C++Builderパートが 17時30分~17時50分の時間割でお送りしています。

無料でダウンロード&利用できる開発環境のDelphi / C++Builder Starter エディションを使用して、プログラミング言語のDelphi (Object Pascal ), C++の基礎を学ぶオンラインセッションです。

https://community.embarcadero.com/blogs/entry/2-japan

 

サマリ

アジェンダ

  • 今日のねらい

    • 条件によって行う処理を変える方法を知る
    • 一定条件のもと繰り返し処理を行う方法を知る
  • 実施内容

    • 一般的な文の基本
    • 条件文の使い方を学ぶ
    • ループ文の使い方を学ぶ
    • ループ文の制御を学ぶ

スライド資料

http://www.slideshare.net/ssuser8bd3f7/cbuilder-starter-2-cbuilder-3

開発環境のインストール

開発環境のインストールについては、[Delphi / C++Builder Starter チュートリアルシリーズ] 第1回 ‟無料で始めよう アプリ作成„ にて丁寧な説明がありますので、そちらをご視聴の上でインストールを進めてください。

https://community.embarcadero.com/blogs?view=entry&id=9038

実施内容

if 文:条件を満たす場合に追加の処理を行う

  • 条件・判定により、実行する、しない処理を変えることができる。
  • 値が true/真の場合に限って、続く文を処理する。
  • 複数の処理を行う場合は { } で囲む。

if … else … 文:条件を満たさない場合に別の処理を追加

  • if … else … とすれば、条件を満たす場合と満たさない場合にそれぞれ別の処理を記述できる

if 条件の比較、複合条件、複合文

  • 条件の判定に演算子を使用 : == , != , < , <=, > , >= , !
  • 複数の条件を合わせて判定する場合、論理演算子を使用: && (= AND) || ( = OR)
  • 否定(反転)の場合も論理演算子: !
    • 例 : if (! CheckBox1.isChecked) … // Trueではなければ
  • 条件判定後False/偽ののち、さらに別の条件判定を行うときは else if がある
演算子 意味
== 左辺と右辺が等しい
!= 等しくない
< 左辺値が小さい
> 左辺値が大きい
<= 左辺が右辺以下
>= 左辺が右辺以上

switch (値) { case … }

  • 単なる真偽ではなく、複数の値で処理を分岐させたい場合の方法
  • 値は整数型(または列挙型)。浮動小数点は使えない。
  • 値に対応するラベルを case 値1 : case 値2 : のように書く
  • ラベルは判定結果の飛び先の定義であり、ラベル自体に特別な機能はない
  • break; を見つけたら、そこで処理を終えて switch を抜ける
  • いずれの case ラベルにも該当しない場合には default: ラベルに飛ぶ(default が無い場合は何もしない)
switch( a ) {
  case 1:
  処理1;
  break;

  case 2:
  処理2;
  break;

  case 3:
  処理3;
  break;

  default:
  デフォルトの処理;
}
if (a == 1) {
  処理1;
}
else if ( a == 2 ) {
  処理2;
}
else if ( a == 3 ) {
  処理3;
}
else {
  デフォルトの処理;
}
switch( a ) {
  case 1:
  処理1;
  // case 2: は飛び先のラベルであり、それ以上の機能はない。
  // よって、a = 1 の処理は case 1: から始まって case 2: の break; まで処理が行われる。

  case 2:
  処理2;
  break;

  case 3:
  処理3;
  break;

  default:
  デフォルトの処理;
}
switch( a ) {
  case 1:
  // case 1 の後に処理がないので、case 1 と case 2 は結果的に同じ処理を行う
  case 2:
  //1と2の共通処理
  break;

  case 3:
  //処理3
  break;

  default:
  //デフォルトの処理
}

ループ for (初期化文 ; 条件 ; 式 ) { 処理; … }

  • カウンタ(変数)の値が任意の初期値から一定の値になるまでループ
  • カウンタの値の増減は式で設定する
    for ( int counter = 0 ; counter < 10 ; counter ++ ) {
    //処理
    ShowMessage(
        Format(“i = %d”, ARRAYOFCONST(( i )) )
    );
    }
    

ループ for ( 変数宣言 : 配列または列挙型 ) { 処理; … }

  • 宣言された変数に対して配列や列挙型の全要素を順番に代入してループする
  • データ全体を処理する場合や、不連続に変化する値の集合へのループがシンプルに書ける
  • コンパイル設定でClangコンパイラを有効にした場合に利用可能
  • Clangを使用する場合はプロジェクト毎に「従来のBorlandコンパイラを使用」を false にする
    ```c:forループの例2
    //配列型を宣言し、5つの初期値を設定する
    int array[] = { 1, 3, 5 ,6, 9 };

for ( int i : array ) {
//処理
ShowMessage(
Format(“i = %d”, ARRAYOFCONST(( i )) )
);
}


## ループ  while ( 条件式 ) { 処理; … }
- 式が true の間はループを続ける
- 条件によってはwhile ループの中身を1度も実行せずに終了する場合がある(開始時点で条件式が false の場合)

```c:wnhileループの例1
int counter = 0;
while ( counter < 10 ) {
  /* このループは10回実行される */
  counter++;
}
int counter = 10;
while ( counter < 10 ) {
  /* ループが一度も実行されない例 */
  /* ループに入る時点で counter の値が 10 なので、*/
  /* ループの継続条件である「10 未満」を満たさない */
  counter++;
}

ループ do { 処理; … } while ( 条件式 );

  • 式が true の間はループを続ける
  • ループの中身は少なくとも1回は必ず実行される
int counter = 0;
do {
  /* このループは10回実行される */
  counter++;
}
while ( counter < 10 );
int counter = 10;
do {
  /* ループが1回だけ実行される例 */
  counter++;
}
while ( counter < 10 )

continue, break による処理の分岐制御

for, while や switch を途中で抜けたり、処理の先頭に戻るための制御を行う

  • continue = for, while の条件式判断に戻る

  • break = for, while, switch の処理を抜ける

セミナー動画

チュートリアルセミナー視聴ページにて、シーズン2の放送分を視聴できるようにしています。チュートリアルシリーズに申し込み済みの方はメールにてご案内済みの視聴ページよりご視聴ください。まだ申し込んでいない方は下記アドレスよりお申込みいただくと視聴できます。

http://forms.embarcadero.com/starter-tutorial-webinar

また、シーズン1の放送分は youtube の下記ページよりご視聴いただけます。

https://www.youtube.com/playlist?list=PLoQxxVNY10oEmNSjiPdYPV_E9IL9ipico

シーズン1のまとめ記事もございますので、こちらも併せてお読みください。

https://community.embarcadero.com/blogs/entry/delphi-c-builder-starter-japan

■次回のC++Builderパートは2月13日(月) 17:30頃より、“関数„をお送りいたします。。

 


About
Gold User, No rank,
Sales Consultant at Embarcadero Technologies, in Japan.

Comments

Check out more tips and tricks in this development video: