© 2016 Embarcadero Technologies, Inc.
All rights reserved. Proprietary and confidential.
第3回
‟条件とループ„
シーズン2:プログラミング言語をやさしく覚えよう
C++Builderの部
2© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
Delphi / C++Builder Starter チュートリアルシリーズ
シーズン2 :2017年1月23日 ~ 3月27日 全 9 回
時間 :毎週 月曜 17 時 00分~17時 50分
Delphi 17時00分~17時20分 / C++Builder 17時30分~17時50分
ねらい :プログラミング言語をやさしく覚えよう
シーズン2
第1回 2017年1月23日 シューティングゲームのプログラム
第2回 1月30日 変数と 型
第3回 2月6日 条件 とループ
第4回 2月13日 関数
第5回 2月20日 配列 と レコード
第6回 2月27日 文字列 と オブジェクト
第7回 3月6日 オブジェクト指向
第8回 3月13日 作ってみよう(仮)
第9回 3月27日 コミュニティ と 勉強会
セミナー情報 : 下記のWebサイト
http://forms.embarcadero.com/starter-tutorial-webinar
3© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
第3回 「条件とループ」
 今日のねらい
• 条件によって行う処理を変える方法を知る
• 一定条件のもと繰り返し処理を行う方法を知る
 実施内容
• 一般的な文の基本
• 条件文の使い方を学ぶ
• ループ文の使い方を学ぶ
• ループ文の制御を学ぶ
4© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
無料版 C++Builder 10.1 Berlin Starter Edition 入手方法
• シリアルキーを知らせるメール内にも再ダウンロードリンク有
エンバ
Web
製品
C++
Builder
Starter
バナー
登録 Get
 無料で使える開発環境をダウンロード
EDN*に登録済の方はEDNアカウントでダウンロード可
登録完了後、自動でインストーラーのダウンロード開始
インストール時にシリアルキーを入力
登録時のメールアドレスにシリアルキーが配信される
5© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int iA = 1;
int iB = 0;
iB = iA + 2;
ShowMessage( Format( "%d + 2 = %d", ARRAYOFCONST(( iA, iB )) ) );
}
一般的な文 (Statements)
 左から右に読んで、上から下に進む
 文はセミコロン ; により次の文へと分けられる
 複数行をまとめる場合は { と } で囲む。
 条件文やループ文により、分岐、繰り返し処理を行う
6© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
if 文 - 条件を満たす場合に追加の処理を行う
 条件・判定により、実行する/しない処理を変えることができる
 値が True/真 の場合に限って、続く文を処理する
 複数の処理を行う場合は { } で囲む
int count = 0;
if (Switch1->IsChecked == True) {
ShowMessage( L"Switch1 が on です。" );
count = count + 1;
}
if (Switch1->IsChecked == True)
ShowMessage( L"Switch1 が on です。" );if ( … )
if文が true / 真の
時に実行される処理
true
false
7© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
if … else 文 – 条件を満たさない場合に別の処理を追加
 if … else … とすれば、条件を満たす場合と満たさない場合にそ
れぞれ別の処を記述できる
if (Switch1->IsChecked == True) {
// if文が true / 真の時に実行される処理
ShowMessage( L”Switch1 が on です。” );
}
else {
// if文が false / 偽の時に実行される処理
ShowMessage( L"Switch1 が off です。" );
}
if ( … )
if文が true / 真の
時に実行される処理
true false
if文が false / 偽の
時に実行される処理
8© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
if 条件の比較、複合条件 、複合文
 条件の判定に演算子を使用 : == , != , < , <=, > , >= , !
 複数の条件を合わせて判定する場合、論理演算子を使用: && (= AND) || ( = OR)
 否定(反転)の場合も論理演算子: !
例 : if (! CheckBox1.isChecked) ... // Trueではなければ
 条件判定後False/偽ののち、さらに別の条件判定を行うときは else if がある
{
if ( RadioButton1.isChecked && CheckBox1.isChecked ) then // && で複数条件確認
{ // { } で複数の文をまとめる
i = i + 1;
ShowMessage( L”チェックボックスON”);
}
else if ( i <= 10 ) // else ifでさらに条件判定
ShowMessage(L”チェックボックスOFFでiが10以下”);
else
ShowMessage(L”チェックボックスOFFでiが10より大きい”);
}
演算子 意味
== 左辺と右辺が等しい
!= 等しくない
< 左辺値が小さい
> 左辺値が大きい
<= 左辺が右辺以下
>= 左辺が右辺以上
9© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; }
 単なる真偽ではなく、複数の値で処理を分岐さ
せたい場合の方法
 値は整数型(または列挙型)。浮動小数点は使
えない。
 値に対応するラベルを case 値1 : case 値2 : の
ように書く
 ラベルは判定結果の飛び先の定義であり、ラベ
ル自体に特別な機能はない
 break; を見つけたら、そこで処理を終えて
switch を抜ける
 いずれの case ラベルにも該当しない場合には
default: ラベルに飛ぶ(default が無い場合は何
もしない)
switch
( … )
処理1
case 値1
処理2
case 値2
処理3
case 値3
その他の値の処理
default
break;
break;
break;
10© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
 switch の記述例1:基本の書き方
switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; }
switch( a ) {
case 1:
処理1;
break;
case 2:
処理2;
break;
case 3:
処理3;
break;
default:
デフォルトの処理;
}
switch
( … )
処理1
case 値1
処理2
case 値2
処理3
case 値3
その他の値の処理
default
break;
break;
break;
11© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
 同じ処理を if 文で書くと…
switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; }
a == 1 ?if (a == 1) {
処理1;
}
else if ( a == 2 ) {
処理2;
}
else if ( a == 3 ) {
処理3;
}
else {
デフォルトの処理;
}
a == 2 ?
a == 3 ?
処理1
処理2
処理3
デフォルトの処理
true
false
false
false
true
true
12© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; }
 switch の記述例2:break; を書かないと?
switch( a ) {
case 1:
処理1;
case 2:
処理2;
break;
case 3:
処理3;
break;
default:
デフォルトの処理;
}
case 2: は飛び先のラベルで
あり、それ以上の機能はない。
よって、a = 1 の処理は case
1: から始まって case 2: の
break; まで処理が行われる。
処理1
case 値1
処理2
case 値2
処理3
case 値3
その他の値の処理
default
break;
break;
switch
( … )
13© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; }
switch
( … )
case 値1
case 値2
処理3
case 値3
その他の値の処理
default
break;
 switch の記述例3:複数の case を連続して書くと?
switch( a ) {
case 1:
case 2:
//1と2の共通処理
break;
case 3:
//処理3
break;
default:
//デフォルトの処理
}
1と2の共通処理 break;
処理がないので
先の行に進む。
14© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
ループ for (初期化文 ; 条件 ; 式 ) { 処理; … }
 カウンタ(変数)の値が任意の初期値から一
定の値になるまでループ
 カウンタの値の増減は式で設定する
for ( int counter = 0 ; counter < 10 ; counter ++ ) {
//処理
ShowMessage(
Format(“i = %d”, ARRAYOFCONST(( i )) )
);
}
条件
counter <
10
初期化文
int counter =0
処理
式
false
true
15© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
ループ for ( 変数宣言 : 配列または列挙型 ) { 処理; … }
 宣言された変数に対して配列や列挙型の全要
素を順番に代入してループする
 データ全体を処理する場合や、不連続に変化
する値の集合へのループがシンプルに書ける
 コンパイル設定でClangコンパイラを有効にし
た場合に利用可能
//配列型を宣言し、5つの初期値を設定する
int array[] = { 1, 3, 5 ,6, 9 };
for ( int i : array ) {
//処理
ShowMessage(
Format(“i = %d”, ARRAYOFCONST(( i )) )
);
}
未処理の値
がある?
配列または列挙型の
値の集合を
順次取り出す
処理
false
true
16© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
参考: Clangコンパイラを有効にする設定
 Clangを使用する場合はプロジェクト毎に「従来のBorlandコンパイラを使
用」を false にする。
17© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
ループ while ( 条件式 ) { 処理; … }
 式が true の間はループを続ける
 条件によってはwhile ループの中身を1度も実行せずに
終了する場合がある(開始時点で条件式が false の場
合)
int counter = 0;
while ( counter < 10 ) {
/* このループは10回実行される */
counter++;
}
int counter = 10;
while ( counter < 10 ) {
/* ループが一度も実行されない例 */
/* ループに入る時点で counter の値が 10 なので、*/
/* ループの継続条件である「10 未満」を満たさない */
counter++;
}
条件式?
処理
false
true
18© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
ループ do { 処理; … } while ( 条件式 );
 式が true の間はループを続ける
 ループの中身は少なくとも1回は必ず実行される
int counter = 0;
do {
/* このループは10回実行される */
counter++;
}
while ( counter < 10 );
int counter = 10;
do {
/* ループが1回だけ実行される例 */
counter++;
}
while ( counter < 10 )
条件式?
処理
false
true
19© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
continue, break による処理の分岐制御
 for, while や switch を途中で抜けたり、
処理の先頭に戻るための制御を行う
• continue
for, while の条件式判断に戻る
• break
for, while, switch の処理を抜ける
int somefunction ( int number ) {
while ( … ) {
switch ( ) {
case xx:
…
continue;
case yy:
for ( int i = 0 ; i < 10 ; i++ ) {
…
if ( 何かの条件 ) {
break;
}
…
}
…
break;
default:
….
}
for () {
….
}
}
}
20© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
本日のセミナー内容は
弊社ブログに掲載予定
[コミュニティ]
↓
[日本人ブログ]
実施内容の再視聴
 皆さんが見ているWebページの下に、順次アップロード
 エンバカデロWebサイト : http://forms.embarcadero.com/starter-tutorial-webinar
 [リソース] – [イベント]の「Delphi / C++Builder Starter チュートリアルシリーズ」ページ
 実施内容サマリー
• Community embarcadero (コミュニティ エンバカデロ)にWebリンク、サンプルコード情報等
http://community.embarcadero.com/
「エンバカデロ」で検索
21© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
第3回 「条件とループ」まとめ
 今日のねらい
• 条件によって行う処理を変える方法を知る
• 一定条件のもと繰り返し処理を行う方法を知る
 実施内容
• 一般的な文の基本
• 条件文の使い方を学ぶ
• ループ文の使い方を学ぶ
• ループ文の制御を学ぶ
22© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
 次回のC++パートは
2月13日(月)17:30より
“関数„

More Related Content

PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
PPTX
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
PPTX
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
PPTX
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
PPTX
ループその2
PPTX
これだけ知っときゃなんとかなるVim
PDF
Vim script と vimrc の正しい書き方@nagoya.vim #1
PDF
(初心者向け) Vim の機能紹介@nagoya.vim #1
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
ループその2
これだけ知っときゃなんとかなるVim
Vim script と vimrc の正しい書き方@nagoya.vim #1
(初心者向け) Vim の機能紹介@nagoya.vim #1

What's hot (7)

PPTX
条件分岐・繰り返し処理
PPTX
第1回Java講義資料
PDF
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
PDF
モナドハンズオン前座
PDF
そしてjsの基礎へ戻る#4
PDF
Clojure
条件分岐・繰り返し処理
第1回Java講義資料
みんなで Swift 復習会 GO! in 福岡 – 8th′ #minna_de_swift
モナドハンズオン前座
そしてjsの基礎へ戻る#4
Clojure
Ad

Viewers also liked (12)

PPTX
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY1: Delphiで作るはじめてのアプリケーション
PPTX
移行セミナー BDE to FireDAC 20161018
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
PPTX
【Delphi / C++Builder Starter チュートリアルシリーズ】 第5回 ‟イベントに合わせて動かしてみよう„
PPTX
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...
PPTX
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
PPTX
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
PPTX
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
PPTX
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
PDF
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY1: Delphiで作るはじめてのアプリケーション
移行セミナー BDE to FireDAC 20161018
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【Delphi / C++Builder Starter チュートリアルシリーズ】 第5回 ‟イベントに合わせて動かしてみよう„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...
DELPHI BOOT CAMP / DELPHIでビジュアル開発に挑戦しよう ◆ DAY2: DELPHIでUI設計のポイントを学ぼう
Webセミナー「RAD Studio 10.1 Berlin Update 2 Anniversary Edition 新機能ガイド」
Delphi / C++Builder 業務アプリケーション 刷新実践法: BDEを使った業務アプリを 移行ツールで最新化
RAD Studioで始めるマルチデバイス・クロスプラットフォーム開発ワークショップ
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
Ad

Similar to 【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第3回 ‟条件とループ„ (20)

PPT
PPTX
C言語 学習教材
PDF
C言語講習会2
PPTX
C言語 学習教材
PDF
講座C入門
PPT
言語処理系入門€10
PPTX
8_C言語入門 - 条件分岐について(if-else if-else)
PPTX
Javaプログラミング入門【第2回】
PDF
Java勉強会2017.3.17
PDF
Unity2015_No10_~UGUI&Audio~
PDF
[コデアル][Programming24]Androidアプリ勉強会01
PPTX
9_C言語入門 - 条件分岐について(switch case)
PDF
講座Java入門
PDF
PPTX
Ruby講座一回目
PPTX
Ruby講座一回目
PPTX
関数型言語&形式的手法セミナー(3)
PPTX
Javaプログラミング入門【第3回】
C言語 学習教材
C言語講習会2
C言語 学習教材
講座C入門
言語処理系入門€10
8_C言語入門 - 条件分岐について(if-else if-else)
Javaプログラミング入門【第2回】
Java勉強会2017.3.17
Unity2015_No10_~UGUI&Audio~
[コデアル][Programming24]Androidアプリ勉強会01
9_C言語入門 - 条件分岐について(switch case)
講座Java入門
Ruby講座一回目
Ruby講座一回目
関数型言語&形式的手法セミナー(3)
Javaプログラミング入門【第3回】

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

  • 1. © 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. 第3回 ‟条件とループ„ シーズン2:プログラミング言語をやさしく覚えよう C++Builderの部
  • 2. 2© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp Delphi / C++Builder Starter チュートリアルシリーズ シーズン2 :2017年1月23日 ~ 3月27日 全 9 回 時間 :毎週 月曜 17 時 00分~17時 50分 Delphi 17時00分~17時20分 / C++Builder 17時30分~17時50分 ねらい :プログラミング言語をやさしく覚えよう シーズン2 第1回 2017年1月23日 シューティングゲームのプログラム 第2回 1月30日 変数と 型 第3回 2月6日 条件 とループ 第4回 2月13日 関数 第5回 2月20日 配列 と レコード 第6回 2月27日 文字列 と オブジェクト 第7回 3月6日 オブジェクト指向 第8回 3月13日 作ってみよう(仮) 第9回 3月27日 コミュニティ と 勉強会 セミナー情報 : 下記のWebサイト http://forms.embarcadero.com/starter-tutorial-webinar
  • 3. 3© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 第3回 「条件とループ」  今日のねらい • 条件によって行う処理を変える方法を知る • 一定条件のもと繰り返し処理を行う方法を知る  実施内容 • 一般的な文の基本 • 条件文の使い方を学ぶ • ループ文の使い方を学ぶ • ループ文の制御を学ぶ
  • 4. 4© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 無料版 C++Builder 10.1 Berlin Starter Edition 入手方法 • シリアルキーを知らせるメール内にも再ダウンロードリンク有 エンバ Web 製品 C++ Builder Starter バナー 登録 Get  無料で使える開発環境をダウンロード EDN*に登録済の方はEDNアカウントでダウンロード可 登録完了後、自動でインストーラーのダウンロード開始 インストール時にシリアルキーを入力 登録時のメールアドレスにシリアルキーが配信される
  • 5. 5© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp void __fastcall TForm1::Button1Click(TObject *Sender) { int iA = 1; int iB = 0; iB = iA + 2; ShowMessage( Format( "%d + 2 = %d", ARRAYOFCONST(( iA, iB )) ) ); } 一般的な文 (Statements)  左から右に読んで、上から下に進む  文はセミコロン ; により次の文へと分けられる  複数行をまとめる場合は { と } で囲む。  条件文やループ文により、分岐、繰り返し処理を行う
  • 6. 6© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp if 文 - 条件を満たす場合に追加の処理を行う  条件・判定により、実行する/しない処理を変えることができる  値が True/真 の場合に限って、続く文を処理する  複数の処理を行う場合は { } で囲む int count = 0; if (Switch1->IsChecked == True) { ShowMessage( L"Switch1 が on です。" ); count = count + 1; } if (Switch1->IsChecked == True) ShowMessage( L"Switch1 が on です。" );if ( … ) if文が true / 真の 時に実行される処理 true false
  • 7. 7© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp if … else 文 – 条件を満たさない場合に別の処理を追加  if … else … とすれば、条件を満たす場合と満たさない場合にそ れぞれ別の処を記述できる if (Switch1->IsChecked == True) { // if文が true / 真の時に実行される処理 ShowMessage( L”Switch1 が on です。” ); } else { // if文が false / 偽の時に実行される処理 ShowMessage( L"Switch1 が off です。" ); } if ( … ) if文が true / 真の 時に実行される処理 true false if文が false / 偽の 時に実行される処理
  • 8. 8© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp if 条件の比較、複合条件 、複合文  条件の判定に演算子を使用 : == , != , < , <=, > , >= , !  複数の条件を合わせて判定する場合、論理演算子を使用: && (= AND) || ( = OR)  否定(反転)の場合も論理演算子: ! 例 : if (! CheckBox1.isChecked) ... // Trueではなければ  条件判定後False/偽ののち、さらに別の条件判定を行うときは else if がある { if ( RadioButton1.isChecked && CheckBox1.isChecked ) then // && で複数条件確認 { // { } で複数の文をまとめる i = i + 1; ShowMessage( L”チェックボックスON”); } else if ( i <= 10 ) // else ifでさらに条件判定 ShowMessage(L”チェックボックスOFFでiが10以下”); else ShowMessage(L”チェックボックスOFFでiが10より大きい”); } 演算子 意味 == 左辺と右辺が等しい != 等しくない < 左辺値が小さい > 左辺値が大きい <= 左辺が右辺以下 >= 左辺が右辺以上
  • 9. 9© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; }  単なる真偽ではなく、複数の値で処理を分岐さ せたい場合の方法  値は整数型(または列挙型)。浮動小数点は使 えない。  値に対応するラベルを case 値1 : case 値2 : の ように書く  ラベルは判定結果の飛び先の定義であり、ラベ ル自体に特別な機能はない  break; を見つけたら、そこで処理を終えて switch を抜ける  いずれの case ラベルにも該当しない場合には default: ラベルに飛ぶ(default が無い場合は何 もしない) switch ( … ) 処理1 case 値1 処理2 case 値2 処理3 case 値3 その他の値の処理 default break; break; break;
  • 10. 10© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp  switch の記述例1:基本の書き方 switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; } switch( a ) { case 1: 処理1; break; case 2: 処理2; break; case 3: 処理3; break; default: デフォルトの処理; } switch ( … ) 処理1 case 値1 処理2 case 値2 処理3 case 値3 その他の値の処理 default break; break; break;
  • 11. 11© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp  同じ処理を if 文で書くと… switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; } a == 1 ?if (a == 1) { 処理1; } else if ( a == 2 ) { 処理2; } else if ( a == 3 ) { 処理3; } else { デフォルトの処理; } a == 2 ? a == 3 ? 処理1 処理2 処理3 デフォルトの処理 true false false false true true
  • 12. 12© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; }  switch の記述例2:break; を書かないと? switch( a ) { case 1: 処理1; case 2: 処理2; break; case 3: 処理3; break; default: デフォルトの処理; } case 2: は飛び先のラベルで あり、それ以上の機能はない。 よって、a = 1 の処理は case 1: から始まって case 2: の break; まで処理が行われる。 処理1 case 値1 処理2 case 値2 処理3 case 値3 その他の値の処理 default break; break; switch ( … )
  • 13. 13© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp switch (値) { case 値1 : 処理1 ; case 値2: 処理2 ; } switch ( … ) case 値1 case 値2 処理3 case 値3 その他の値の処理 default break;  switch の記述例3:複数の case を連続して書くと? switch( a ) { case 1: case 2: //1と2の共通処理 break; case 3: //処理3 break; default: //デフォルトの処理 } 1と2の共通処理 break; 処理がないので 先の行に進む。
  • 14. 14© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp ループ for (初期化文 ; 条件 ; 式 ) { 処理; … }  カウンタ(変数)の値が任意の初期値から一 定の値になるまでループ  カウンタの値の増減は式で設定する for ( int counter = 0 ; counter < 10 ; counter ++ ) { //処理 ShowMessage( Format(“i = %d”, ARRAYOFCONST(( i )) ) ); } 条件 counter < 10 初期化文 int counter =0 処理 式 false true
  • 15. 15© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp ループ for ( 変数宣言 : 配列または列挙型 ) { 処理; … }  宣言された変数に対して配列や列挙型の全要 素を順番に代入してループする  データ全体を処理する場合や、不連続に変化 する値の集合へのループがシンプルに書ける  コンパイル設定でClangコンパイラを有効にし た場合に利用可能 //配列型を宣言し、5つの初期値を設定する int array[] = { 1, 3, 5 ,6, 9 }; for ( int i : array ) { //処理 ShowMessage( Format(“i = %d”, ARRAYOFCONST(( i )) ) ); } 未処理の値 がある? 配列または列挙型の 値の集合を 順次取り出す 処理 false true
  • 16. 16© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 参考: Clangコンパイラを有効にする設定  Clangを使用する場合はプロジェクト毎に「従来のBorlandコンパイラを使 用」を false にする。
  • 17. 17© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp ループ while ( 条件式 ) { 処理; … }  式が true の間はループを続ける  条件によってはwhile ループの中身を1度も実行せずに 終了する場合がある(開始時点で条件式が false の場 合) int counter = 0; while ( counter < 10 ) { /* このループは10回実行される */ counter++; } int counter = 10; while ( counter < 10 ) { /* ループが一度も実行されない例 */ /* ループに入る時点で counter の値が 10 なので、*/ /* ループの継続条件である「10 未満」を満たさない */ counter++; } 条件式? 処理 false true
  • 18. 18© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp ループ do { 処理; … } while ( 条件式 );  式が true の間はループを続ける  ループの中身は少なくとも1回は必ず実行される int counter = 0; do { /* このループは10回実行される */ counter++; } while ( counter < 10 ); int counter = 10; do { /* ループが1回だけ実行される例 */ counter++; } while ( counter < 10 ) 条件式? 処理 false true
  • 19. 19© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp continue, break による処理の分岐制御  for, while や switch を途中で抜けたり、 処理の先頭に戻るための制御を行う • continue for, while の条件式判断に戻る • break for, while, switch の処理を抜ける int somefunction ( int number ) { while ( … ) { switch ( ) { case xx: … continue; case yy: for ( int i = 0 ; i < 10 ; i++ ) { … if ( 何かの条件 ) { break; } … } … break; default: …. } for () { …. } } }
  • 20. 20© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 本日のセミナー内容は 弊社ブログに掲載予定 [コミュニティ] ↓ [日本人ブログ] 実施内容の再視聴  皆さんが見ているWebページの下に、順次アップロード  エンバカデロWebサイト : http://forms.embarcadero.com/starter-tutorial-webinar  [リソース] – [イベント]の「Delphi / C++Builder Starter チュートリアルシリーズ」ページ  実施内容サマリー • Community embarcadero (コミュニティ エンバカデロ)にWebリンク、サンプルコード情報等 http://community.embarcadero.com/ 「エンバカデロ」で検索
  • 21. 21© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 第3回 「条件とループ」まとめ  今日のねらい • 条件によって行う処理を変える方法を知る • 一定条件のもと繰り返し処理を行う方法を知る  実施内容 • 一般的な文の基本 • 条件文の使い方を学ぶ • ループ文の使い方を学ぶ • ループ文の制御を学ぶ
  • 22. 22© 2017 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp  次回のC++パートは 2月13日(月)17:30より “関数„