JavaプログラミングⅠ

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

JavaプログラミングⅠ

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

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

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

JavaプログラミングⅠ

JavaプログラミングⅠ

JavaプログラミングⅠ

プログラミング入門1

プログラミングA

プログラムの基本構成

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

Java講座

JavaプログラミングⅠ

K227 Java 2

Microsoft Word - java a.doc

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

2

Prog1_2nd

2

マークアップ言語

プログラミング入門1

マークアップ言語

JavaプログラミングⅠ

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

Prog1_10th

//// Assignment4_1.java // // 課題 1: 長方形の面積 /////////////////

Prog2_9th

r1.dvi

JavaプログラミングⅠ

JavaプログラミングⅠ

プログラミング入門1

プログラミング入門1

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

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

Microsoft PowerPoint - prog03.ppt

JavaプログラミングⅠ

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

kantan_C_1_iro3.indd

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

プログラミング入門1

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

PowerPoint プレゼンテーション

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

Prog1_15th

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

JavaプログラミングⅠ

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

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt

プログラミングA

メソッドのまとめ

Prog1_6th

Microsoft Word - no02.doc


プログラミング実習I

Prog1_3rd

JavaScriptプログラミング入門 2.JavaScriptの概要

Microsoft PowerPoint - CproNt05.ppt [互換モード]

Prog2_10th

JavaプログラミングⅠ

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(Java) サンプル問題 知識科目 第 1 問 (

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

ガイダンス

Microsoft Word - CompA-Ex doc

プログラミングA

プログラミング基礎

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

PowerPoint プレゼンテーション

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

Microsoft Word - keisankigairon.ch doc

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

スライド 1


デジタル表現論・第6回

JavaプログラミングⅠ

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

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

スライド 1

Microsoft Word - 商業-3

JavaプログラミングⅠ

Microsoft PowerPoint - 3.ppt [互換モード]

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

Microsoft PowerPoint - 4.ppt [互換モード]

スライド 1

PowerPoint プレゼンテーション

class TestPrimitiveType{ public static

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

8 if switch for while do while 2

PowerPoint プレゼンテーション

2

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

Microsoft Word - 3new.doc

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

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

GEC-Java

2

PowerPoint Presentation

プログラミング基礎

JavaプログラミングⅠ

Transcription:

Java プログラミング Ⅰ 4 回目演算子 今日の講義で学ぶ内容 演算子とオペランド 式 様々な演算子 代表的な演算子の使用例 演算子とオペランド 演算子 演算の種類です例えば + - * / 掛け算の記号は ではなく *( アスタリスク ) を使います割り算の記号は ではなく /( スラッシュ ) を使います オペランド 演算の対象です例えば 5( 値 ) num( 変数 ) 式 演算子とオペランドの組み合わせにより構成される数式です式は演算結果をもちます 例えば 式 +: 演算子式全体 : 演算結果 1 + num 1: オペランド num: オペランド 単一の変数も式と呼びます 例えば 式 num: 単一の変数 num 式全体 : 演算結果 一般に式は演算結果を持ちますが 演算結果をもたない特殊な式もあります Java プログラミング Ⅱ で解説します - 1/11 -

ソースコード例ソースファイル名 :Sample4_1.java // 変数を用いた式 class Sample4_1 public static void main(string[] args) // 変数宣言と初期化 int num1 = 15; int num2 = 3; // num1 と num2 の四則計算 int add; add = num1 + num2; int sub; sub = num1 - num2; int mul; mul = num1 * num2; int div; div = num1 / num2; 掛け算は ではなく * ( アスタリスク ) を使います 割り算は ではなく / ( スラッシュ ) を使います // 計算結果の出力 System.out.println(num1 + " と " + num2 + " の四則計算 :"); System.out.println(" 和 = "+add); System.out.println(" 差 = "+sub); System.out.println(" 積 = "+mul); System.out.println(" 商 = "+div); 15 と 3 の四則計算 : 和 = 18 差 = 12 積 = 45 商 = 5-2/11 -

演算子の種類 演算子は 算術演算子 ビット論理演算子 シフト演算子 インクリメント デクリメント演算子 関係演算子 論理演算子 条件演算子 代入演算子など多彩な分類をもちます 算術演算子 インクリメント デクリメント演算子 + 加算 ( 文字列連結 ) ++ インクリメント 単項演算子 - 減算 -- デクリメント 単項演算子 * 乗算 関係演算子 / 除算 > より大きい % 剰余 >= 以上 ビット論理演算子 < 未満 & ビット論理積 <= 以下 ビット論理和 == 等しい ^ ビット排他的論理和!= 等しくない シフト演算子 論理演算子 << 左シフト! 論理否定 単項演算子 >> 右シフト && 論理積 >>> 符号なし右シフト 論理和 その他 条件演算子 + プラス 単項演算子? : 条件 三項演算子 - マイナス 単項演算子 代入演算子 ~ 1の補数 反転 単項演算子 = n 項演算子 加算演算子 +...... 演算子はオペランドの数により単項 二項 三項演算子と呼ばれます 単項演算子オペランドが 1 つ例えば ++( インクリメント ) 二項演算子オペランドが 2 つ例えば + - * /( 四則計算 ) 三項演算子オペランドが 3 つ Java では唯一であり? :( 条件演算子 ) 加算と文字列連結の 2 つの役割をもちます 2 つの役割はオペランドの種類によりどちらかに決まります 文字列連結いずれかまたは両方のオペランドが String 型のとき 加算それ以外 "Hello" などの文字列リテラルは String 型とみなされます 次のコードを実行すると 右のように出力されます System.out.println("ABC"+"DEF"); ABCDEF System.out.println("ABC"+50); ABC50 System.out.println(20+50); 70-3/11 -

ソースコード例ソースファイル名 :Sample4_2.java // 剰余付き割り算プログラム import java.io.*; class Sample4_2 public static void main(string[] args) throws IOException // キーボード準備 BufferedReader br; br = new BufferedReader(new InputStreamReader(System.in)); // 整数用の変数 int num1, num2, tmp; int div; // 商 int mod; // 余り // 整数の入力 System.out.println("# 剰余付き割り算 # n2 つの整数を入力してください "); System.out.println("1 つ目の整数を入力してください "); num1 = Integer.parseInt(br.readLine( )); System.out.println("2 つ目の整数を入力してください "); num2 = Integer.parseInt(br.readLine( )); // 剰余の計算 mod = num1 % num2; // % は余りを計算する演算子 // 商の計算 tmp = num1 - mod; div = tmp / num2; あまり // 結果の出力 System.out.println(num1+" "+num2+" = "+div+" あまり "+mod); # 剰余付き割り算 # 2 つの整数を入力してください 1 つ目の整数を入力してください 11 2 つ目の整数を入力してください 4 11 4 = 2 あまり 3-4/11 -

インクリメント デクリメント演算子 インクリメント演算子 ++ オペランドの変数の値を1 増やします 演算結果は次のようになります a++ ++a 後置インクリメント変数 a を演算結果とした後 a の値を 1 増やします前置インクリメント変数 a の値を 1 増やした後 a を演算結果とします デクリメント演算子 -- オペランドの変数の値を1 減らします 演算結果は次のようになります a-- 後置デクリメント 変数 a を演算結果とした後 a の値を 1 減らします --a 前置デクリメント 変数 a の値を 1 減らした後 a を演算結果とします 演算結果が出されるタイミングに注意しましょう ソースコード例ソースファイル名 :Sample4_3.java // 前置 後置インクリメント class Sample4_3 public static void main(string[] args) // 変数の宣言と初期化 int a1=0, a2=0; int b=0, c=0; System.out.println("a1="+ a1); System.out.println("a2="+ a2); // 前置 後置インクリメントの違い b = a1++; c = ++a2; System.out.println(" 後置 前置インクリメントをします "); System.out.println(" 後置インクリメント (b=a1++;) b="+ b); System.out.println(" 前置インクリメント (c=++a2;) c="+ c); System.out.println("a1="+ a1); System.out.println("a2="+ a2); // 単独で用いると 1 増えるだけ a1++; ++a2; System.out.println(" 単独で後置 前置インクリメントもできます "); System.out.println(" 後置インクリメント a1++; "); System.out.println(" 前置インクリメント ++a2; "); System.out.println("a1="+ a1); System.out.println("a2="+ a2); - 5/11 -

a1=0 a2=0 後置 前置インクリメントをします後置インクリメント (b=a1++;) b=0 前置インクリメント (c=++a2;) c=1 a1=1 a2=1 単独で後置 前置インクリメントもできます後置インクリメント a1++; 前置インクリメント ++a2; a1=2 a2=2 インクリメント デクリメント演算子では そのオペランドの変数の値そのものが演算前と演算後で変化します 一般に 式を計算するとき オペランドの値を用いて演算結果を計算しますオペランドの変数の値は参照されるだけで 新しい値が代入されることはありません 例えば 加算演算子 i + num 参照された値を用いて加算の演算結果が計算されます i は参照されるだけです変数 i の値はそのままです num は参照されるだけです変数 num の値はそのままです 例外として インクリメント デクリメント演算子と代入演算子 ( 次に説明 ) ではオペランドの変数に新しい値が代入されます 例えば インクリメント演算子 ++i 前置インクリメントなので 加算された後の変数 i の値が演算結果です i の値が変わります変数 i の値は 1 加算されます - 6/11 -

代入演算子 代入演算子 = 右辺の値を左辺の変数に代入します 演算結果は左辺に代入された値です 代入演算子 n=10 左辺に代入された値 10 が演算結果です 値が変わります変数 n の値は 10 になります 代入演算子の演算結果の例として int n; System.out.println(n=10); とすると 10 が画面に出力されます 右辺の式に 左辺と同じ変数を使用することもできます int n=5; n=n+2; System.out.println(n); とすると 7 が画面に出力されます 代入演算子の目的は代入です代入演算子自身の演算結果を利用することは少ないです 複合的な = 左辺と右辺を用いて演算 をした後 結果を左辺に代入します代入演算子演算結果は左辺に代入された値です には次のような演算子を入れて利用できます 機能的には a = b と a = a b は同じです a += b 加算 + 代入 a = a + b a -= b 減算 + 代入 a = a b a *= b 乗算 + 代入 a = a * b a /= b 除算 + 代入 a = a / b a %= b 剰余 + 代入 a = a % b a &= b 論理積 + 代入 a = a & b a = b 論理和 + 代入 a = a b a ^= b 排他的論理和 + 代入 a = a ^ b a <<= b 左シフト + 代入 a = a << b a >>= b 右シフト + 代入 a = a >> b a >>>=b 符号なし右シフト + 代入 a = a >>> b - 7/11 -

複合的な代入演算子の演算結果の例として int n=5; System.out.println(n+=10); とすると 15 が画面に出力されます 右辺の式に 左辺と同じ変数を使用することもできます int n=5; n+=n; System.out.println(n); とすると 10 が画面に出力されます 複合的な代入演算子の目的は演算を伴った代入です複合的代入演算子自身の演算結果を利用することは少ないですソースコード例ソースファイル名 :Sample4_4.java // 複合的な代入演算子を用いた総計処理 class Sample4_4 public static void main(string[] args) int sum=0; // 総計用の変数 ゼロで初期化 // 処理内容のメッセージ System.out.println("3 つの整数の総計を求めます "); System.out.println("1 つ目の整数は 3"); sum += 3; System.out.println("2 つ目の整数は 5"); sum += 5; System.out.println("3 つ目の整数は 2"); sum += 2; // 総計の表示 System.out.println(" 総計は " + sum + " です "); 3 つの整数の総計を求めます 1 つ目の整数は 3 2 つ目の整数は 5 3 つ目の整数は 2 総計は 10 です - 8/11 -

シフト演算子 シフト演算子 << >> >>> 指定ビットシフトします 演算結果は指定ビットシフトした値です a << b 左シフト演算子変数 a のビット列 シフトの回数 b 0 0 b ビット分 a のビット列を左へシフトし 右を 0 で埋めます シフト演算子のオペランドの変数の値は加算や減算などの算術演算子と同様に演算前と演算後で変化しません a >> b 右シフト演算子変数 a のビット列 0/1 0/1 a >>> b 符号なし右シフト演算子 0 0 b ビット分 a のビット列を右へシフトし a が正の場合は 0 で 負の場合は 1 で左を埋めます 右シフト演算子は左側を 0 又は 1 で埋めることによりシフトする値の正負を保持します b ビット分 a のビット列を右へシフトし 0 で左を埋めます ソースコード例ソースファイル名 :Sample4_5.java // シフト演算 class Sample4_5 public static void main(string[] args) int i=2, ans; // シフト演算例 ans = i << 1; // 1 ビット左へ (2 倍 ) System.out.println(ans); ans = i >> 1; // 1 ビット右へ (0.5 倍 ) System.out.println(ans); 4 1-9/11 -

ソースコード例ソースファイル名 :Sample4_6.java // シフト演算の働き class Sample4_6 public static void main(string[] args) int i; short num=5; // ビット列出力 System.out.print(" シフト前 "); for(i=0;i<16;i++) System.out.print(0x0001&(num>>(15-i))); System.out.println("(b)"); // シフト演算 num <<= 2; // ビット列出力 System.out.print(" シフト後 "); for(i=0;i<16;i++) System.out.print(0x0001&(num>>(15-i))); System.out.println("(b)"); シフト前 0000000000000101(b) シフト後 0000000000010100(b) - 10/11 -

今日の講義のまとめ 式は 演算子とオペランドからなります 演算子は演算の種類 オペランドは演算の対象です また 式は演算結果を持ちます 演算子には算術演算子やインクリメント デクリメント演算子 代入演算子など多くの種類があります 演算子はそのオペランドの数により単項 / 二項 / 三項演算子に分類されます 加算演算子は 文字列連結と加算の 2 つの役割をもちます そのオペランドの種類によりどちらかに決まります インクリメント演算子は オペランドの変数の値を 1 増やします デクリメント演算子は オペランドの変数の値を 1 減らします それぞれに前置と後置の書き方があり これに依存して演算結果が出されるタイミングが決まります 代入演算子は 右辺のオペランドの値を左辺のオペランドの変数に代入します 代入演算子と算術演算子などを組み合わせた複合的な代入演算子もあります - 11/11 -