JavaプログラミングⅠ

Similar documents
break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

JavaプログラミングⅠ

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

JavaプログラミングⅠ

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

JavaプログラミングⅠ

JavaプログラミングⅠ

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

JavaプログラミングⅠ

JavaプログラミングⅠ

プログラミングA

K227 Java 2

プログラミング入門1

プログラミング入門1

JavaプログラミングⅠ

ガイダンス

JavaプログラミングⅠ

Microsoft Word - java a.doc

プログラミング入門1

プログラムの基本構成

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

マークアップ言語

r1.dvi

2

プログラミングA

Prog1_3rd

プログラミング基礎

kantan_C_1_iro3.indd

JavaプログラミングⅠ

Microsoft Word - CompA-Ex doc

メソッドのまとめ

マークアップ言語

オブジェクト指向プログラミング・同演習 5月21日演習課題

プログラミングA

2

プログラミング入門1

Microsoft PowerPoint - prog03.ppt

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

Java講座

Assignment_.java 課題 : 転置行列 / class Assignment_ public static void main(string[] args) int i,j; int[][] array = 1,,,,,,,,,,,,,1,1,; 行 列行列 i

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

JavaプログラミングⅠ

Java プログラミング Ⅰ 11 回目多次元配列 2 次元配列 2 次元配列配列要素が直線上に並ぶ一次元配列に対して 平面上に並ぶ配列要素をもつ配列 直観的には 2 次元配列の準備配列変数の宣言は型と識別子を指定して次のように行う 型識別子 [ ][ ]; または 型 [ ][ ] 識別子 ; 配


プログラミング基礎I(再)

2

計算機プログラミング

問題1 以下に示すプログラムは、次の処理をするプログラムである

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

Javaプログラムの実行手順

Microsoft PowerPoint - class04.ppt

System.out.println("char : " + (int)character.min_value + "~" + (int)character.max_value); System.out.println("float : " + Float.MIN_VALUE + "~" + Flo


8 if switch for while do while 2

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

Javaによるアルゴリズムとデータ構造

Prog2_9th

5

情報処理Ⅰ

I java A

スライド 1

タブ or スペース? インデントには タブ文字を使用する方法と半角スペースを使用する方法があります インデントにタ ブ文字を使うか半角スペースを使うかは 各プロジェクトで決められていることもありますが プログラ ムを書く人の好みだったりすることもあります まともなエディタであれば タブキーを押下し

JavaプログラミングⅠ

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

プログラミング入門1

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

Microsoft Word - 商業-3

Assignment_.java 0 Assignment_.java 課題 : 台形の面積 / class Assignment_ public static void main(string[] args) throws IOException キーボード準備 int top, bottom,

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

デジタル表現論・第6回

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

PowerPoint プレゼンテーション

プログラミング基礎

GEC-Java

問題1 以下に示すプログラムは、次の処理をするプログラムである

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

PowerPoint プレゼンテーション

Prog1_2nd

プログラミング入門1

できるプログラマーを本気で育てる Java 超 Webプログラマーへの第 歩 第 3 回コレクションと例外処理 テクノロジックアート 瀬嘉秀

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

r02.dvi

ohp02.dvi

Programming-C-9.key

GEC-Java

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

デジタル表現論・第4回

GEC-Java

Microsoft Word - keisankigairon.ch doc

3. 標準入出力

Microsoft PowerPoint - 説明3_if文switch文(C_guide3)【2015新教材対応確認済み】.pptx

: : : TSTank 2

3,, となって欲しいのだが 実際の出力結果を確認すると両方の配列とも 10, 2, 3,, となってしまっている この結果は代入後の配列 a と b は同じものになっていることを示している つまり 代入演算子 = によるの代入は全要素のコピーではなく 先をコピーする ため 代入後の a と b は

JavaプログラミングⅠ

8 / 0 1 i++ i 1 i-- i C !!! C 2

Transcription:

Java プログラミング Ⅰ 6 回目 if 文と if else 文 今日の講義で学ぶ内容 関係演算子 if 文と if~else 文 if 文の入れ子 関係演算子 関係演算子 ==,!=, >, >=, <, <= 2 つのオペランド間の関係を評価して 真 (true) または偽 (false) を判断します 演算結果は boolean 型です boolean 型の変数には論理値リテラルの true と false を代入できます たとえば 加算演算子では 1+2 の演算結果は 3 で数値ですが 関係演算子では 1==1 の演算結果は true で論理値です 関係演算子とその意味 a == b b が a に等しいとき true となりますそれ以外では false となります a!= b a > b a >= b a < b a <= b b が a に等しくないとき true となりますそれ以外では false となります b より a が大きいとき true となりますそれ以外では false となります b より a が大きいか等しいとき true となりますそれ以外では false となります b より a が小さいとき true となりますそれ以外では false となります b より a が小さいか等しいとき true となりますそれ以外では false となります - 1/11 -

"==" は関係演算子で等価を表し "=" は代入演算子で代入を表します 3 つの関係演算子!= >= <= のイコールはすべて右側に書きます左右を逆にしたコードをコンパイルすると 式の開始が不正です や 型の開始が不正です などのコンパイルエラーになりますので注意しましょう ソースコード例ソースファイル名 :Sample6_1.java // 関係演算子 class Sample6_1 public static void main(string[] args) boolean b0, b1, b2, b3; int i1=1, i2=10; double d1=2.5, d2=5.0; // 3 は 5 より小さいので false b0 = (5 < 3); 関係演算子と型変換 関係演算子を用いた式を評価する場合も算術演算子と同様にオペランドの型の拡大変換が行われますただし 演算結果は boolean 型です // i2 は i1 より大きいので true b1 = (i1 < i2); // d2*2 と i2 は等しいので true b2 = (i2==(d2*2)); 関係演算子と代入演算子 代入演算子 "=" はイコールが 1 つで 関係演算子 "==" はイコールが 2 つです間違えないようにしましょう // すべての括弧を外して b2 = i2==d2*2; としても演算子の優先順位より // 乗算 -> 関係演算 -> 代入の順番で演算が行われるため問題ありませんが // このように不明確な場合は括弧で優先順位を明示したほうが無難でしょう // d1 と d2 は等しくないので true それと false は等しくないので false b3 = ((d1!=d2)==false); System.out.println("b0="+b0+", b1="+b1+", b2="+b2+", b3="+b3); 実行画面 b0=false, b1=true, b2=true, b3=false - 2/11 -

条件判断文 1 if 文 if 文 条件が true の場合 文を処理します条件は boolean 型で 関係演算子で表現される式などを記述します例えば a<b a!=5 など if( 条件 ) 文 コード例 if(a<3)system.out.println(a); false 条件 true 文 文が記述できる場所には複数の文のまとまりとなる ( ブロック ) を記述できます 文は ;( セミコロン ) で終わる個々の単一の処理や命令のことです (2 回目の講義を参照 ) if 文は次のように記述することもできます if( 条件 ) 文 1 文 2 コード上の改行やスペース タブ 改頁は処理に影響を与えませんただし 字句を区切る役割は持ちますので キーワードや識別子 文字列リテラルなどまとまりある単語の途中に入れたり たとえば double doub le キーワードや識別子を空白なしで続けて書くとコンパイルエラーになりますたとえば int a; inta; 改行やスペース タブ 改頁のことをホワイトスペース (whitespace) といいます ホワイトスペースを上手に用いて 見やすくなるようにコードを工夫しましようたとえば if 文は次のように書くと分かりやすいでしょう if( 条件 ) 文 1 文 2 : - 3/11 -

ソースコード例ソースファイル名 :Sample6_2.java // if 文 import java.io.*; class Sample6_2 public static void main(string[] args) throws IOException // キーボード入力の準備 BufferedReader br; br = new BufferedReader(new InputStreamReader(System.in)); int i; System.out.println(" "); i=integer.parseint(br.readline()); // 入力された値を if 文で判断し 1 であればブロック内を処理する if(i==1) System.out.println("1 が入力されました "); System.out.println("1 が選択されました "); System.out.println(" 処理を終了します "); 実行画面 1 1 1 が入力されました 1 が選択されました 処理を終了します 実行画面 2 2 処理を終了します - 4/11 -

次にように if 文を記述するとどうなるでしょうか? // if 文のよくあるミス class Sample6_2_1 public static void main(string[] args) int i=0; if 文のブロック がない場合 次の 1 文が if 文の条件が真のときに実行する文と解釈されます // if 文のブロック を忘れたら? if(i==1) System.out.println("1 が入力されました "); System.out.println("1 が選択されました "); System.out.println(" 処理を終了します n"); 単独のセミコロン 文はセミコロンでおわる処理です 単独のセミコロンは処理のない空の文です // if 文ブロック前に ;( セミコロン ) を入れてしまったら? if(i==2); 条件が真のときに実行する文 が空の文と解釈されます System.out.println("2 が入力されました "); 次に続くブロックは if 文と System.out.println("2 が選択されました "); は関係のない通常の文です System.out.println(" 処理を終了します "); 実行画面 1 が選択されました 処理を終了します 2 が入力されました 2 が選択されました 処理を終了します このようなミスは Java の文法的には間違いではないためコンパイラエラーとして発見されることはありません このようなエラーを論理エラーといいます 論理エラーを防ぐために 読みやすく分かり易いコードを書くことを心がけましょう!! - 5/11 -

条件判断文 2 if~else 文 if~else 文 条件が true の場合 文 1 を処理し 条件が false の場合 文 2 を処理します 条件は boolean 型で 関係演算子で表現される式などを記述します例えば a<b a!=5 など if( 条件 ) 文 1 else 文 2 コード例 if(a<=0)a=0; else a=1; 文 1 true 条件 false 文 2 else は 条件が満たされなかった場合 という意味ですので else の直後に if(a<=0) a=1; else(a>0) a=0; とすると 文ではありません というコンパイルエラーになりますので注意しましょう if~else 文はブロックを用いて次のように記述することもできます if( 条件 ) 文 1A 文 1B else 文 2A 文 2B または if( 条件 ) 文 1A else 文 1B : 文 2A 文 2B : - 6/11 -

ソースコード例ソースファイル名 :Sample6_3.java // if ~ else 文 import java.io.*; class Sample6_3 public static void main(string[] args) throws IOException // キーボード入力の準備 BufferedReader br; br = new BufferedReader(new InputStreamReader(System.in)); int i; System.out.println(" "); i=integer.parseint(br.readline()); // 入力された値を if ~ else 文で判断し if(i==1) // 入力値が 1 であればこのブロックを処理する System.out.println("1 が入力されました "); System.out.println("1 が選択されました "); else // 入力値が 1 以外であればこのブロックを処理する System.out.println("1 以外が入力されました "); System.out.println("1 を入力してください "); System.out.println(" 処理を終了します "); 実行画面 1 1 1 が入力されました 1 が選択されました 処理を終了します - 7/11 -

実行画面 2 2 1 以外が入力されました 1 を入力してください 処理を終了します if~else 文の入れ子 if 文や if~else 文は 1 つの文です if 文や if~else 文を他の if 文や if~else 文に入れることができます if( 条件 ) if 文 1 else if 文 2 if 文や if~else 文は 1 つの文ですのでブロックを書かなくてもエラーにはなりませんしかし 次のように if と else の対応が一意的ではなくなる場合があります if ( 条件 A ) if ( 条件 B ) 文 1 else 文 2 このような場合 Java は逐次的に else を else と対応のない直前の if と対応付けます if ( 条件 A ) if ( 条件 B ) 文 1 else 文 2 ユーザの解釈 外側に if~else 文内側に if 文 誤解を招きますので次のようにブロックを入れて明示しましょう if ( 条件 A ) if ( 条件 B ) 文 1 else 文 2 Java の解釈 外側に if 文内側に if~else 文 このような場合は 最初からブロックを付けて明示すると誤解もなくなり良いでしょう if( 条件 ) if 文 1 else if 文 2-8/11 -

ソースコード例ソースファイル名 :Sample6_4.java // if ~ else 文の入れ子 import java.io.*; class Sample6_4 public static void main(string[] args) throws IOException // キーボード入力の準備 BufferedReader br; br = new BufferedReader(new InputStreamReader(System.in)); int i; System.out.println(" "); i=integer.parseint(br.readline()); // 入力された値を if ~ else 文の入れ子で判断し if(i==1) // 入力値が 1 であればこのブロックを処理する System.out.println("1 が入力されました "); System.out.println("1 が選択されました "); else // 入力値 1 以外で if(i==2) // 入力値が 2 であればこのブロックを処理する System.out.println("2 が入力されました "); System.out.println("2 が選択されました "); else // 2 でなければこのブロックを処理する System.out.println("1 または 2 を入力してください "); System.out.println(" 処理を終了します "); - 9/11 -

実行画面 1 1 1 が入力されました 1 が選択されました 処理を終了します 実行画面 2 2 2 が入力されました 2 が選択されました 処理を終了します 実行画面 3 3 1 または 2 を入力してください 処理を終了します 慣れてきたら Sample6_4.java で出てきた左側のような if~else 文の入れ子を右側のように書くとより読みやすくなり 良いでしょう どちらも同じ処理ですので分かりやすい方で書いてください if ( 条件 A ) 文 1 ; else if ( 条件 B ) 文 2 ; else 文 3 ; if ( 条件 A ) 文 1 ; else if ( 条件 B ) 文 2 ; else 文 3 ; Java の解釈による if と else の対応 左側と同じ処理をしているのがわかりますね - 10/11 -

今日の講義のまとめ 関係演算子は オペランドのどちらが大きいか小さいか またそれらが等しいかどうかを演算します 演算結果は 真の場合には true 偽の場合には false です if 文は条件判断を行います 条件が真の場合には 指定された文が実行されます ホワイトスペースとは 改行やスペース タブ 改項のことです これらは処理に影響を与えませんので 上手に用いて見やすいコードを心がけましょう if~else 文は 条件が真の場合に実行される文と 条件が偽の場合に実行される文の両方を指定できます if 文や if~else 文を他の if 文などにいれて 入れ子にすることができます - 11/11 -