62
Java 演習 (6) 条件分岐 高橋 裕樹 条件分岐 Java 演習 (6) 条件分岐 高橋 裕樹

条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

Java演習 (6)– 条件分岐 –

高橋 裕樹

Page 2: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

例題

下図に示すように,描画領域 (400, 300)の範囲に,幅 20画素の縦縞模様を描画するプログラムを作成せよ.

Page 3: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

縞模様を描画するプログラム (Stripe.java)

import javax.swing.JApplet;import java.awt.Graphics;import java.awt.Color;

public class Stripe extends JApplet {public void paint(Graphics g) {

g.setColor(Color.white);g.fillRect(0, 0, 400, 300);

int i = 0, x = 0, w = 20; 10

g.setColor(Color.black);while(x < 400){

if(i % 2 == 0) g.fillRect(x, 0, w, 300);x += w;i++;

}g.drawRect(0, 0, 399, 299);

}}

Page 4: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(評価式) 文

評価式 評価式が真であれば,文を実行

Page 5: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(評価式) 文

評価式 評価式が真であれば,文を実行

評価式

Page 6: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(評価式) 文

評価式 評価式が真であれば,文を実行

評価式

true

Page 7: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(評価式) 文

評価式 評価式が真であれば,文を実行

評価式

true

Page 8: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(評価式) 文

評価式 評価式が真であれば,文を実行

評価式

false

Page 9: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(i % 2 == 0) g.fillRect(x, 0, w, 300);

x += w;

i++;

i % 2 == 0 iを 2で割った剰余 ... 0 (iが偶数)

Page 10: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(i % 2 == 0) g.fillRect(x, 0, w, 300);

x += w;

i++;

i % 2 == 0 iを 2で割った剰余 ... 0 (iが偶数)

i % 2 == 0

Page 11: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(i % 2 == 0) g.fillRect(x, 0, w, 300);

x += w;

i++;

i % 2 == 0 iを 2で割った剰余 ... 0 (iが偶数)

i % 2 == 0

true(iが偶数)

g.fillRect

Page 12: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(i % 2 == 0) g.fillRect(x, 0, w, 300);

x += w;

i++;

i % 2 == 0 iを 2で割った剰余 ... 0 (iが偶数)

i % 2 == 0

true(iが偶数)

g.fillRect

x += w; i++;

Page 13: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if文

if(i % 2 == 0) g.fillRect(x, 0, w, 300);

x += w;

i++;

i % 2 == 0 iを 2で割った剰余 ... 0 (iが偶数)

i % 2 == 0

g.fillRect

x += w; i++;

false(iが奇数)

Page 14: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

練習

練習

下図に示すような描画領域 (400, 300)の範囲に,幅 20画素の横縞模様を描画するプログラムを作成せよ.

Page 15: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

チェッカーフラグ

例題

下図に示すように,描画領域 (400, 300)の範囲に,縦横 20画素の矩形を持つチェッカーフラグを描画するプログラムを作成せよ.

Page 16: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

チェッカーフラグを描画するプログラム (Checker.java)

import javax.swing.JApplet;import java.awt.Graphics;import java.awt.Color;

public class Checker extends JApplet {public void paint(Graphics g) {

g.setColor(Color.white);g.fillRect(0, 0, 400, 300);

int j = 0, y = 0, w = 20; 10

g.setColor(Color.black);while(y < 300){

int x = 0, i = 0;while(x < 400){

if((i + j) % 2 == 0) g.fillRect(x, y, w, w);x += w;i++;

}y += w;j++; 20

}g.drawRect(0, 0, 399, 299);

}}

Page 17: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

12-21行目

縦方向の描画

j: 行番号

14-18行目

横方向の描画

i: 列番号

15行目

i + j(行番号+列番号)が偶数か奇数か判断偶数の場合: 黒で塗りつぶす

Page 18: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

練習

練習

下図に示すように,描画領域 (400, 300)の範囲に,縦横 20画素の矩形を持つチェッカーフラグを描画するプログラムを作成せよ.先程の例題とは色が逆になっている

Page 19: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

練習

練習

下図に示すように,ひとつおきに画像を枠で囲うプログラムを作成せよ.

Page 20: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

例題

下図に示すような,□と○を交互に 10個,横に並べて描画するプログラムを作成せよ.

Page 21: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

□と○を交互に描画するプログラム (CircleBox1.java)

import javax.swing.JApplet;import java.awt.Graphics;

public class CircleBox1 extends JApplet {public void paint(Graphics g){

int w = 30, sp = 20, y = 20;

for(int i = 0, x = 20; i < 10; i++, x += (w + sp)){if(i % 2 == 0)

g.drawRect(x, y, w, w); 10

else

g.drawArc(x, y, w, w, 0, 360);}

}}

Page 22: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式) 文-1else 文-2

評価式 評価式が真であれば,文-1を実行評価式が偽であれば,文-2を実行

Page 23: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式) 文-1else 文-2

評価式 評価式が真であれば,文-1を実行評価式が偽であれば,文-2を実行

評価式

Page 24: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式) 文-1else 文-2

評価式 評価式が真であれば,文-1を実行評価式が偽であれば,文-2を実行

評価式

true

文-1 文-2

Page 25: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式) 文-1else 文-2

評価式 評価式が真であれば,文-1を実行評価式が偽であれば,文-2を実行

評価式

true

文-1 文-2

Page 26: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式) 文-1else 文-2

評価式 評価式が真であれば,文-1を実行評価式が偽であれば,文-2を実行

評価式

文-1 文-2

false

Page 27: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式) 文-1else 文-2

評価式 評価式が真であれば,文-1を実行評価式が偽であれば,文-2を実行

評価式

文-1 文-2

false

Page 28: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 2 == 0) { g.drawRect(); }else { g.drawArc(); }

i % 2 == 0 iが偶数であれば,□を描画iが奇数であれば,○を描画

Page 29: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 2 == 0) { g.drawRect(); }else { g.drawArc(); }

i % 2 == 0 iが偶数であれば,□を描画iが奇数であれば,○を描画

i % 2 == 0

Page 30: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 2 == 0) { g.drawRect(); }else { g.drawArc(); }

i % 2 == 0 iが偶数であれば,□を描画iが奇数であれば,○を描画

i % 2 == 0

true(iが偶数)

drawRect drawArc

Page 31: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 2 == 0) { g.drawRect(); }else { g.drawArc(); }

i % 2 == 0 iが偶数であれば,□を描画iが奇数であれば,○を描画

i % 2 == 0

true(iが偶数)

drawRect drawArc

Page 32: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 2 == 0) { g.drawRect(); }else { g.drawArc(); }

i % 2 == 0 iが偶数であれば,□を描画iが奇数であれば,○を描画

i % 2 == 0

drawRect drawArc

false(iが奇数)

Page 33: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 2 == 0) { g.drawRect(); }else { g.drawArc(); }

i % 2 == 0 iが偶数であれば,□を描画iが奇数であれば,○を描画

i % 2 == 0

drawRect drawArc

false(iが奇数)

Page 34: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

練習

練習

下図に示すような,□を一つ描いた後に○を 2個描く操作を繰り返し,横に図形を 10個並べて描画するプログラムを作成せよ.(Circle-Box2.java)

Page 35: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

練習

練習

下図に示すように,2つの画像を交互に 10個並べて描画するプログラムを作成せよ.

Page 36: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

例題

下図に示すような,□,○,■を交互に 10個,横に並べて描画するプログラムを作成せよ.

Page 37: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

□,○,■を交互に描画するプログラム (CircleBox3.java)

import javax.swing.JApplet;import java.awt.Graphics;

public class CircleBox3 extends JApplet {public void paint(Graphics g){

int w = 30, sp = 20, y = 20;

for(int i = 0, x = 20; i < 10; i++, x += (w + sp)){if(i % 3 == 0)

g.drawRect(x, y, w, w); 10

else if(i % 3 == 1)g.drawArc(x, y, w, w, 0, 360);

else

g.fillRect(x, y, w + 1, w + 1);}

}}

Page 38: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式-1) 文-1else if(評価式-2) 文-2else 文-3

評価式-1 評価式-1が真であれば,文-1を実行

評価式-2 評価式-2が真であれば,文-2を実行

どちらも真でない場合,文-3を実行

Page 39: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式-1) 文-1else if(評価式-2) 文-2else 文-3

評価式-1 評価式-1が真であれば,文-1を実行

評価式-2 評価式-2が真であれば,文-2を実行

どちらも真でない場合,文-3を実行

評価式-1

Page 40: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式-1) 文-1else if(評価式-2) 文-2else 文-3

評価式-1 評価式-1が真であれば,文-1を実行

評価式-2 評価式-2が真であれば,文-2を実行

どちらも真でない場合,文-3を実行

評価式-1

true

文-1 文-2 文-3

Page 41: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式-1) 文-1else if(評価式-2) 文-2else 文-3

評価式-1 評価式-1が真であれば,文-1を実行

評価式-2 評価式-2が真であれば,文-2を実行

どちらも真でない場合,文-3を実行

評価式-1

true

文-1 文-2 文-3

Page 42: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式-1) 文-1else if(評価式-2) 文-2else 文-3

評価式-1 評価式-1が真であれば,文-1を実行

評価式-2 評価式-2が真であれば,文-2を実行

どちらも真でない場合,文-3を実行

評価式-1

文-1 文-2 文-3

false 評価式-2

Page 43: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式-1) 文-1else if(評価式-2) 文-2else 文-3

評価式-1 評価式-1が真であれば,文-1を実行

評価式-2 評価式-2が真であれば,文-2を実行

どちらも真でない場合,文-3を実行

評価式-1

文-1 文-2 文-3

false 評価式-2

true

Page 44: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式-1) 文-1else if(評価式-2) 文-2else 文-3

評価式-1 評価式-1が真であれば,文-1を実行

評価式-2 評価式-2が真であれば,文-2を実行

どちらも真でない場合,文-3を実行

評価式-1

文-1 文-2 文-3

false 評価式-2

true

Page 45: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式-1) 文-1else if(評価式-2) 文-2else 文-3

評価式-1 評価式-1が真であれば,文-1を実行

評価式-2 評価式-2が真であれば,文-2を実行

どちらも真でない場合,文-3を実行

評価式-1

文-1 文-2 文-3

false 評価式-2false

Page 46: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(評価式-1) 文-1else if(評価式-2) 文-2else 文-3

評価式-1 評価式-1が真であれば,文-1を実行

評価式-2 評価式-2が真であれば,文-2を実行

どちらも真でない場合,文-3を実行

評価式-1

文-1 文-2 文-3

false 評価式-2false

Page 47: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 3 == 0) { g.drawRect(); }else if(i % 3 == 1) { g.drawArc(); }else { g.fillRect(); }

i % 3 == 0 iが 3の倍数であれば,□を描画

i % 3 == 1 iが 3の倍数+1であれば,○を描画

どちらでもない場合,■を描画

Page 48: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 3 == 0) { g.drawRect(); }else if(i % 3 == 1) { g.drawArc(); }else { g.fillRect(); }

i % 3 == 0 iが 3の倍数であれば,□を描画

i % 3 == 1 iが 3の倍数+1であれば,○を描画

どちらでもない場合,■を描画

i % 3 == 0

Page 49: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 3 == 0) { g.drawRect(); }else if(i % 3 == 1) { g.drawArc(); }else { g.fillRect(); }

i % 3 == 0 iが 3の倍数であれば,□を描画

i % 3 == 1 iが 3の倍数+1であれば,○を描画

どちらでもない場合,■を描画

i % 3 == 0

true

drawRect drawArc fillRect

Page 50: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 3 == 0) { g.drawRect(); }else if(i % 3 == 1) { g.drawArc(); }else { g.fillRect(); }

i % 3 == 0 iが 3の倍数であれば,□を描画

i % 3 == 1 iが 3の倍数+1であれば,○を描画

どちらでもない場合,■を描画

i % 3 == 0

true

drawRect drawArc fillRect

Page 51: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 3 == 0) { g.drawRect(); }else if(i % 3 == 1) { g.drawArc(); }else { g.fillRect(); }

i % 3 == 0 iが 3の倍数であれば,□を描画

i % 3 == 1 iが 3の倍数+1であれば,○を描画

どちらでもない場合,■を描画

i % 3 == 0

drawRect drawArc fillRect

falsei % 3 == 1

Page 52: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 3 == 0) { g.drawRect(); }else if(i % 3 == 1) { g.drawArc(); }else { g.fillRect(); }

i % 3 == 0 iが 3の倍数であれば,□を描画

i % 3 == 1 iが 3の倍数+1であれば,○を描画

どちらでもない場合,■を描画

i % 3 == 0

drawRect drawArc fillRect

falsei % 3 == 1

true

Page 53: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 3 == 0) { g.drawRect(); }else if(i % 3 == 1) { g.drawArc(); }else { g.fillRect(); }

i % 3 == 0 iが 3の倍数であれば,□を描画

i % 3 == 1 iが 3の倍数+1であれば,○を描画

どちらでもない場合,■を描画

i % 3 == 0

drawRect drawArc fillRect

falsei % 3 == 1

true

Page 54: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 3 == 0) { g.drawRect(); }else if(i % 3 == 1) { g.drawArc(); }else { g.fillRect(); }

i % 3 == 0 iが 3の倍数であれば,□を描画

i % 3 == 1 iが 3の倍数+1であれば,○を描画

どちらでもない場合,■を描画

i % 3 == 0

drawRect drawArc fillRect

falsei % 3 == 1

false

Page 55: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文

if(i % 3 == 0) { g.drawRect(); }else if(i % 3 == 1) { g.drawArc(); }else { g.fillRect(); }

i % 3 == 0 iが 3の倍数であれば,□を描画

i % 3 == 1 iが 3の倍数+1であれば,○を描画

どちらでもない場合,■を描画

i % 3 == 0

drawRect drawArc fillRect

falsei % 3 == 1

false

Page 56: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

練習

練習

下図に示すように□,○,■,●を交互に 10個,横に並べて描画するプログラムを作成せよ.(CircleBox4.java)

Page 57: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

if-else文のネスト

例題

下図に示すように,□と○を交互に並べ,一行おきに色を変えて描画するプログラムを作成せよ.

Page 58: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

□と○を交互に,一行おきに色を変える描画するプログラム (Circle-Box5.java)

import javax.swing.JApplet;import java.awt.Graphics;import java.awt.Color;

public class CircleBox5 extends JApplet {public void paint(Graphics g){

int w = 30, sp = 20;

for(int j = 0, y = 20; j < 5; j++, y += (w + sp)){if(j % 2 == 0) g.setColor(Color.red); 10

else g.setColor(Color.black);

for(int i = 0, x = 20; i < 5; i++, x += (w + sp)){if((i + j) % 2 == 0)

g.drawRect(x, y, w, w);else

g.drawArc(x, y, w, w, 0, 360);}

}} 20

}

Page 59: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

例題

下図に示すように,□と○,●と■を交互に並べて描画するプログラムを作成せよ.

Page 60: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

□と○,●と■を交互に描画するプログラム (CircleBox6.java)

import javax.swing.JApplet;import java.awt.Graphics;

public class CircleBox6 extends JApplet {public void paint(Graphics g){

int w = 30, sp = 20;

for(int j = 0, y = 20; j < 5; j++, y += (w + sp)){if(j % 2 == 0){

for(int i = 0, x = 20; i < 5; i++, x += (w + sp)){ 10

if(i % 2 == 0) g.drawRect(x, y, w, w);else g.drawArc(x, y, w, w, 0, 360);

}}else{

for(int i = 0, x = 20; i < 5; i++, x += (w + sp)){if(i % 2 == 0) g.fillArc(x, y, w, w, 0, 360);else g.fillRect(x, y, w + 1, w + 1);

}} 20

}}

}

Page 61: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

練習

練習

下図に示すように,□と○を交互に並べ,一列おきに色を変えて描画するプログラムを作成せよ.(CircleBox7.java)

Page 62: 条件分岐 Java 演習 (6) 条件分岐 - University of …img2.hc.uec.ac.jp/~rocky/lecture/java/slides/lec06.pdfJava 演習(6) { 条件分岐{高橋裕樹 条件分岐 if 文 if-else

Java 演習 (6)– 条件分岐 –

高橋 裕樹

条件分岐

if 文

if-else 文

if-else 文のネスト

練習

練習

下図に示すように,□と●,○と■を交互に並べて描画するプログラムを作成せよ.(CircleBox8.java)