条件分岐と繰り返し

第3回:条件分岐と繰り返し
プログラミングII
2007年10月9日
本日の講義内容




論理型とその値、論理演算
boolean, true, false, !, ||, &&
Java の制御構造とブロックの意味
条件分岐
if – else
繰り返し
while
復習:キーワードとは?


Javaで役割が予約されている語
約50語定義(goto,constは予約のみ)
•基本データ型とその値
•修飾子
•制御構造
•例外処理
•クラスの構造とオブジェクト生成
基本データ型とその値
整数および浮動小数の型
 文字データの型
 論理値の型と値
 void型
byte,short,int,long,float,double
char,boolean,true,false,void

int x=10; boolean b=true;
制御構造
条件分岐
if else switch case default
 ループ処理
for while do break continue
 メソッドの処理
return

最初に理解すべきキーワード
class
 int, float, char
*意味は今のところ気にしなくてもよい
public, static, void
 本日新たに
boolean, true, false,
if , else, while

論理値リテラル



代入可能な型 boolean
値は true と false
数値に似ているが、数値としては扱わない
演算子とは?


データの値の操作を指定する
記号の文字、および文字の組み合わせ
•単項演算子 +,-,++,--,~,!
•算術演算子 +,-,%,*,/
•代入演算子 =, (演算子)=
•比較演算子 >,<,==,<=,>=,!=,instanceof
•論理演算子 &&, ||
•ビット演算子 ^,&,|
•シフト演算子 >>, >>>, <<
•3項演算子 ? :
•キャスト演算子 (型)
論理演算(1) 値の否定 !

true と false の値を「反対にする」
(数値のマイナス記号と似た働き)
!true -- false の値
!false – true の値
!( 100 < 10 )
論理演算(2) 論理和 – ||






いずれかが true ならば true
true || true -- true
true || false – true
false || true – true
false || false – false
( 10 > 100 || 10 < 100 )
論理演算(3) 論理積 -- &&






いずれの値も true の時のみ true
true && true – true
true && false – false
false && true – false
false && false – false
( 10 > 100 && 10 < 100 )
Javaのプログラムの構造




クラスという単位でプログラムを管理
クラスの内部にはさらに構造がある
メソッドの構造
構造は階層的
メソッドの内部にも構造がある
構造の単位を{ と }で表す
重要な働きをする記号








区切りの括弧 { } ( ) [ ]
式の区切り ;
データの並びの区切り ,
パッケージ名、クラス名の区切り .
「ラベル」の指定 :
クォーテーション記号 ‘ “
コメント文
/* */ /** */ //
アノテーション(J2SE5.0より) @
Javaのプログラムの処理の原則
特別な指定がなければ上から下へ順に
 条件分岐 – 2つ以上の処理から1つを選
択して実行する
 繰り返し – ある処理を何回か繰り返す
*以上の3つのルールを組み合わせて実現
(「構造化プログラミング」の考え方)

条件分岐 – if と else
if( x > 100 ) {
System.out.println( “Big” );
}
else {
System.out.println( “Small” );
}
// 実行されるのは2つのうちのどちらか
3つ以上の処理から選択
if( x > 100 ) {
System.out.println( “Too big” );
}
else if( 0 <= x ) {
System.out.println( “OK” );
}
else {
System.out.println( “Too small” );
}
else がない例
if( x > 100 ) {
System.out.println( “Too big” );
}
:
:
// x <=100 なら何もしないで次の処理へ
繰り返し – whileのループ(1)
while( x < 100 ) {
:
:
}
// 条件式が正しい限り同じ処理を繰り返す
繰り返し – whileのループ(2)
int count = 1;
while( count <= 10 ) {
System.out.println( count );
count ++;
}
// count の値を 1 から 10 まで10回表示
乱数の利用と Math クラス


Mathクラス – Javaの標準クラスライブラリ
(System, Stringなどと同じ仲間)
Mathクラスの働き
数学の計算の機能を提供
円周率πの値、
平方根の計算、三角関数の計算
乱数の発生
Mathクラスの random()メソッド



0.0 ~ 0.999999… の間の乱数を発生
値は double 型のデータに
使用例)
double d = Math.random();
// d には乱数値が
if( d > 0.5 ) {
:
: