質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

2004閲覧

Javaのif-else文についてです。

mi_0502

総合スコア7

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/06/11 09:44

このプログラムは

長方形1の面積が長方形2の面積よりも大きい場合、赤く塗りつぶした二つの長方形を表示
長方形1の面積が長方形2の面積よりも小さかった場合、青く塗りつぶした二つの長方形を表示する

というようなものです。
JavaAppletで実行しています。

下のコードを見てもらった際に、実行した結果は良いのですが

g.fillRect(20, 30, width1, height1);
g.fillRect(120, 30, width2, height2);

という長方形を描く処理が、if文の中に入っており
これをif文の外にだして一つにまとめるべきと言われました。

if文の外に出して、まとめる。というのが全くわかりません。
どうやって一つにまとめたら良いのでしょうか?

lang

1import java.applet.Applet; 2import java.awt.Color; 3import java.awt.Graphics; 4public class DrawRect extends Applet{ 5 public void paint(Graphics g){ 6 7 int width1 = 90;//長方形1の幅 8 int height1 = 150;//長方形1の高さ 9 int width2 = 50;//長方形2の幅 10 int height2 = 85;//長方形2の高さ 11 int area1 = (width1 * height1);//長方形1の面積 12 int area2 = (width2 * height2);//長方形2の面積 13 14 if(area1 > area2){//長方形1の面積が長方形2の面積より大きい場合 15 g.setColor(Color.red);//赤色を設定 16 g.fillRect(20, 30, width1, height1); 17 g.fillRect(120, 30, width2, height2); 18 } 19 else if(area1 < area2){//長方形1の面積が長方形2より小さい場合 20 g.setColor(Color.blue);//青色を設定 21 g.fillRect(20, 30, width1, height1); 22 g.fillRect(120, 30, width2, height2); 23 24} 25 } 26} 27

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

なぜ、という点についても少し触れておきます。
g.fillRect(120, 30, width2, height2);3040にするとしたら、このままだと2箇所を修正しなければならなくなります。
処理を分岐させる必要のないところは「if文の外にだして一つにまとめるべき」なのです。

投稿2015/06/11 11:41

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mi_0502

2015/06/12 23:58

ありがとうございます!納得しました!
guest

0

if文の外に出すというのは下記のようになります。

lang

1 if(area1 > area2){//長方形1の面積が長方形2の面積より大きい場合 2 g.setColor(Color.red);//赤色を設定 3 } else if(area1 < area2){//長方形1の面積が長方形2より小さい場合 4 g.setColor(Color.blue);//青色を設定 5 } 6 7 g.fillRect(20, 30, width1, height1); 8 g.fillRect(120, 30, width2, height2); 9

投稿2015/06/11 09:48

chiku_

総合スコア1464

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問