for{}文をwhile{}文に書き換えてみましょう
ソーラー「さあ
今度は
for{}文をwhile{}文
であらわすことにチャレンジしてみよう~
while{}文
に書き換えられる
for{}文は
for (int x = 0; x < 640; x++) {
ProcessMessage();
DrawBox(100, 100, 500, 300, GetColor(0, 255, 255), TRUE);
DrawGraph(x, 230, graphichandle, TRUE);
ScreenFlip();
ClearDrawScreen();
}
とします」
solarplexuss「ええっ
いきなり問題が難しくない?」
マックス「・・そういえば
for{}文とwhile{}文
は
基本的構造が一緒だから
かきかえることができるって
なんか
天国にいけるC言語入門で
解説されてなかったか?」
ソーラー「くす そうだったかな?😊
for{}文
の
一般的な仕組みは
for (初期化式;条件式; 継続続処理方法){何かの命令文}
となっています
そして
while{}文
の
一般的な仕組みは
初期化式
while(条件式){
何かの命令文
継続処理方法
};
となっています
おっと
while文の最後に;(セミコロン)
をつけ忘れないようにね」
マックス「なんか それ どこかでやった記憶があるなあ・・・」
ソーラー「つまり
for{}文
を
while{}文
に書き換えるには
for (初期化式;条件式; 継続処理方法){何かの命令文}
を
初期化式
while(条件式){
何かの命令文
継続処継方法
};
に
書き換えればいいんです
初期化式
条件式
継続処理方法
の記述される場所が
for{}文
と
while{}文では
違うだけなんだね
もちろん
for{}文で用いられている
初期化式
条件式
継続処理方法
と
while{}文で用いられている
初期化式
条件式
継続処理方法
は
同じものです」
マックス「じゃあ
for (int x=1;x<5; x++){何かの命令文}
なら
int x=1;
while(x<5){
何かの命令文
x++;
};
に
書き換えればいいってことか?
for{}文で用いられている
初期化式
条件式
継続処理方法
を
while{}文に
そのまま
あてはめただけだが・・・」
ソーラー「ぴっこり~んヽ(^o^)丿 そうなんだよ」
solaplexuss「わあ
となると
もう何~にも考えなくても
機械的に
for{}文
を
while{}文に書き換えることができるね」
ソーラー「そうなんです
では
for (int x = 0; x < 640; x++) {
ProcessMessage();//👈ここです ここにProcessMessage();を記述しました
DrawBox(100, 100, 500, 300, GetColor(0, 255, 255), TRUE);
DrawGraph(x, 230, graphichandle, TRUE);
ScreenFlip();
ClearDrawScreen();
}
を
while{}文に書き換えてみましょう
ど~なるのかな」
マックス「くはは
for{}文
👇
for (int x = 0; x < 640; x++) {
ProcessMessage();//👈ここです ここにProcessMessage();を記述しました
DrawBox(100, 100, 500, 300, GetColor(0, 255, 255), TRUE);
DrawGraph(x, 230, graphichandle, TRUE);
ScreenFlip();
ClearDrawScreen();
}
の
初期化式はint x = 0
条件式はx < 640
継続処理方法はx++
なので
while{}文は
初期化式はint x = 0
条件式はx < 640
継続処理方法はx++
を用いて
while(
ProcessMessage();
DrawBox(100, 100, 500, 300, GetColor(0, 255, 255), TRUE);
DrawGraph(x, 230, graphichandle, TRUE);
ScreenFlip();
ClearDrawScreen();
};
になるんじゃないか・・・
ふっ
簡単だな
まったく機械的に
for{}文
を
while{}文
に
書き換えることができた」
ソーラー「
では
while(
ProcessMessage();
DrawBox(100, 100, 500, 300, GetColor(0, 255, 255), TRUE);
DrawGraph(x, 230, graphichandle, TRUE);
ScreenFlip();
ClearDrawScreen();
};
が実際に実行できるのかを確かめてみましょう
ちゃんと実行できてほしいな」
そのプログラムはこちらです
👇
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE); // ウインドウモードに設定します
if (DxLib_Init() == -1) // DXライブラリを初期化処理しています
{
return -1; // DXライブラリの初期化に失敗したら直ちにプログラムを終了します
}
int graphichandle;
graphichandle = LoadGraph("画像データ\\ソーラーが描いた飛行機.bmp");
SetDrawScreen(DX_SCREEN_BACK);//👈🌞SetDrawScreen関数です
int x=0;
while(x< 640){
ProcessMessage();//👈ここです ここにProcessMessage();を記述しました
DrawBox(100, 100, 500, 300, GetColor(0, 255, 255), TRUE);
DrawGraph(x, 230, graphichandle, TRUE);
ScreenFlip();
ClearDrawScreen();
x++;
};
WaitKey(); //🌞 キーの入力を待っています 何かキーが入力がされるまで これ以上プログラムは実行されません
DxLib_End(); // DXライブラリの使用を終了します DXライブラリの使用しているメモリ領域が解放されます
return 0; // プログラムを終了します
}
デバッグなしで実行をしてから一度プログラムを終了し
生成されたexeファイルをハードディスクから探し出しクリックする方法により得られたプログラムの実行結果はこちらです
👇
https://youtu.be/YAC-j31RGl8
ソーラー「わあ ちゃんと
プログラムを実行することができたね
for{}文をwhile{}文に書き換えることができたね」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます