未分類

関係演算子と条件

投稿日:2020年6月27日 更新日:

条件のしくみ

これまでのコードは1文ずつ順序よく処理が行われていました。しかし、「場合に応じた処理」を行うことができます。

ゲームのスコアが良かったら・・・→ボーナスステージに行く

ゲームのスコアが悪かったら・・・→もう一度挑戦する

上記のようにJavaでも、さまざまな状況をあらわすために条件という概念を用います。

例えば、「よいスコアである」という条件を考えてみると、条件がtrueまたはfalseになる場合は次のようになります。

スコアが80点以上だった場合  →  良いスコアで条件はtrue

スコアが80点未満だった場合  →  良いスコアでない条件はfalse

条件を記述する

条件をつくるために使う>記号などは、関係演算子と呼びます。>の場合は「右辺より左辺が大きい場合にtrue」となるので、3>1はtrueとなります。1>3はfalseになります。

  • 演算子         式がtrueとなる場合
  • ==          右辺が左辺に等しい
  • !=           右辺が左辺に等しくない
  • >           右辺より左辺が大きい
  • >=          右辺より左辺が大きいか等しい
  • <           右辺より左辺が小さい
  • <=          右辺より左辺が小さいか等しい

関係演算子を使う

  • 5>3   この条件の評価はtrueです
  • 5<3   この条件の評価はfalseです
  • a==6   この条件の評価は変数aの値によって異なる
  • a!=6   この条件の評価は変数aの値によって異なる

「a==6」という条件は、変数aの値が6であった場合にtrueになります。一方、変数aの値が3や10であった場合はfalseになります。

if文のしくみ

if(良いスコアをとった) ボーナスステージに行く

if文を記述することによって、条件(「良いスコアをとった」)がtrueであった場合に、「ボーナスステージに行く」という処理を行うのです。悪いスコアだった場合には「ボーナスステージに行く」処理は行いません。実際にコードを入力してみましょう。

条件res==1がtrueであれば17行目の処理がされます。ユーザーが1以外の文字を入力したらどうなるでしょうか?res==1がfalseになるため17行目は処理されません。

したがって実行画面の10を入力したときのようになります。

ブロックにしないと?

if文では、条件がtrueのとき、複数の文を処理することもできます。このためには、{}でブロックをつくり、複数の文をまとめます。

しかし、ブロックにせず実行するとどうなるでしょうか?

if文にブロックがないため、コンパイラは、if文の内容は①だけであると解釈してしまったのです。

if~else文のしくみを知る

さらにif文のバリエーションとして、条件がfalseの場合に、指示した文を処理する構文もあります。これがif~else文です。

ユーザーが1と10を入力した場合の、2とおりの画面を示します。

if~else if~elseのしくみを知る

2つ以上の条件を判断させて処理するバリエーションです。

1を入力した場合、最初の条件はtrueになるので、①が処理される。

2を入力した場合、最初の条件がfalseとなるので今度は②が処理される。

これ以外の場合(2つの条件が共にfalseの場合)、必ず③が処理される。

if~else if~elseを使うと、複数の条件に応じた処理を行うことができます。

switch文のしくみを知る

switch文では、文内の式がcaseの後の値と一致すれば、そのあとの文から「break」までの文を処理します。どれにも当てはまらない場合は「default:」以下の文を処理します。「default:」は省略することも可能です。

下記のコードを見てくださいswitch文を使うと、if~else if~elseを簡単に記述できる場合があります。

いくつかの注意点があります。Sample5_05_5からbreak文を省いてみましょう。

実行画面を確認すると、1が入力されました。2が入力されました。1か2を入力してください。とおかしな出力となっています。

そもそもbreakという文は、文の流れを強制的に切るという役割です。

正しい位置にbreak文を入れるようにしましょう。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

サンプルイメージ

練習問題(配列)

練習7-1   BirthStone.java 誕生月を入力すると、その月の誕生石を表示するプログラムを、下の空欄を埋めて作成してください。 練習7-2   DispArray1.java 以下のプロ …

Android 図形、画像の描画

     ソースコードの解説 GraphicsExはプログラムの本体となるクラスです。 GraphicsView.javaを解説します。 ①ラインの描画(25行目) 描画前に「ライン幅」と「描画スタイ …

サンプルイメージ

画面への出力

前回画面に文字列を出力するコードを学習しました。「System.out.println・・・」という言葉に注目してください。この「System.out」とは、 標準出力(standard output …

Androidで神経衰弱ゲームつくりました。

       プログラムの解説 14行目のT[ ]はカードをシャッフルする領域です。 Tebanは、プログラムを制御する領域です。  0の時は、1枚目のカードをクリックします。 1の時は、2枚目のカー …

サンプルイメージ

プログラミングの効率的な勉強法

やる前から苦手意識を持たない。答えは一つではない。 プログラミングはパソコンに対してこうしろと命令文を書いているだけです。 少し勉強しただけで、自分にはプログラミングに向いていないと諦めてしまう人がい …