tanaka's Programming Memo

プログラミングについてのメモ。

601 ifの使い方(ラベルを跳ね返らせる)

プログラミングの6つのミソのうち、入力出力、そして処理の基本である「順次処理」を学んだ。

  • 入力
  • 処理
  • 出力
  • 順次処理
  • 分岐処理
  • 繰り返し処理

ラベルが動き始めると、ラベルを画面内で跳ね返るようにしたいマウスをラベルに重ねるとラベルを消したいなどのアイディアが湧いてくるのではないだろうか。それらを実現するのがプログラミングの花形である分岐処理である。

ここでマスターしたいこと

  • if文の文法を知ること
  • 6つの論理演算子を知ること

if文のもっとも簡単な書き方

if (条件式)
{
    // 条件が成立している時に実行するプログラムのブロック
}

以下に、変数aの値が0だった時に、「ゼロです」と表示するプログラムの例を示す。

int a = 0;
if (a == 0)
{
    MessageBox.Show("ゼロです");
}

条件式の書き方

  • 条件式の結果がtrueの時に、if文の下のブロックが実行される。
  • falseの時は、ブロック内のプログラムは実行されない。
  • 条件式を書く基本的な方法は、以下の比較演算子を利用することである。以下の6つの記号は覚えておこう。
記号 意味
左辺 == 右辺 左辺と右辺が等しい a == 0
aが0と等しい
左辺 != 右辺 左辺と右辺が等しくない a != 0
aが0以外
左辺 >= 右辺 左辺が右辺より大きいか、等しい a >= 0
aが0以上
左辺 > 右辺 左辺が右辺より大きい a > 0
aは0より大きい
左辺 <= 右辺 左辺が右辺より小さいか、等しい a <= 0
aが0以下
左辺 < 右辺 左辺が右辺より小さい a < 0
aが0未満

プログラム例

入力された値が0と比較してどのようなものかを表示するプログラムを以下に示す。動作を見て、if文がどのような動きをするのかを観察してみよう。

動画


601 ifの使い方 - YouTube

手順

  • プロジェクトを作成する(projIfなど)
  • TextBoxとButtonを1つずつ置く
  • ボタンをダブルクリックする
  • プログラムを入力する
// int型の変数aを定義
int a;
// textBox1が空かどうかを判定
if (textBox1.Text == "")
{
    MessageBox.Show("数値を入力してください");
    return;    // returnを書くと、これ以降のプログラムが実行されない
}
// textBox1の値を変数aに代入する
a = int.Parse(textBox1.Text);
// 0と等しいか
if (a == 0)
{
    MessageBox.Show("ゼロです");
}
// 0と等しくないか
if (a != 0)
{
    MessageBox.Show("ゼロではありません");
}
// 0以上か
if (a >= 0)
{
    MessageBox.Show("ゼロ以上です");
}
// 0より大きいか
if (a > 0)
{
    MessageBox.Show("ゼロより大きいです");
}
// 0以下か
if (a <= 0)
{
    MessageBox.Show("ゼロ以下です");
}
// 0より小さいか
if (a < 0)
{
    MessageBox.Show("ゼロより小さいです");
}

実行結果

f:id:am1tanaka:20141118221646g:plain

演習

  • 「乱数の使い方」応用演習に追加する
  • label2の座標が、フォームの外に出たら、移動する方向を反転させて、label2がウィンドウ内を跳ね返るようにする。

ヒント

  • プログラムは、timer1をダブルクリックしたブロックの最後に追加する。
  • label2の左座標(label2.Left)が、画面の左座標(0)より小さくなったら、変数vxの正負を逆転させる。
  • label2の右座標(label2.Right)が、画面の右座標(ClientSize.Width)より大きくなったら、変数vxの正負を逆転させる。
  • label2の上座標(label2.Top)が、画面の上座標(0)より小さくなったら、変数vyの正負を逆転させる。
  • label2の下座標(label2.Bottom)が、画面の下座標(ClientSize.Height)より大きくなったら、変数vyの正負を逆転させる。

f:id:am1tanaka:20141125221658p:plain

label2の座標

f:id:am1tanaka:20141125221637p:plain

ウィンドウ内の座標

完成した時のプログラムのイメージ

f:id:am1tanaka:20141118223736g:plain

  • label2の移動する方向や速度は、実行する度に変わります。


前へ | 目次 | 次へ