Presentation is loading. Please wait.

Presentation is loading. Please wait.

JAVA入門② 変数と型 式と演算子 制御文.

Similar presentations


Presentation on theme: "JAVA入門② 変数と型 式と演算子 制御文."— Presentation transcript:

1 JAVA入門② 変数と型 式と演算子 制御文

2 簡単JAVA説明⑦ ★変数と型 1.変数とは? ・中高(数学等)では 変数=x?つまり 変数="任意の値をとり得る文字"
  ・中高(数学等)では    変数=x?つまり   変数="任意の値をとり得る文字"   ・プログラミング(JAVA)では   変数=値を入れておく入れ物

3 簡単JAVA説明⑦ 2.識別子  変数の名前として使える文字・数字を    「識別子」   と呼ぶ。

4 簡単JAVA説明⑦ 3.識別子(変数)の制限 ①英字、数字、アンダースコア、$を用いる 例.Num、Num1、Num_1、Num$1
  ①英字、数字、アンダースコア、$を用いる 例.Num、Num1、Num_1、Num$1  ②長さはいくらでもよい。 ③予約語は使えない。    ④数字からははじめない。     1Num、100%Num は不可。    ⑤大文字と小文字は区別される。

5 簡単JAVA説明⑦ ★型 ①.変数には値を記憶させる。 ②.値には「種類」がある。 ③.「種類」のことを「型」という。
 ★型 ①.変数には値を記憶させる。 ②.値には「種類」がある。 ③.「種類」のことを「型」という。 ④. 変数は必ず型を指定する必要がある。

6 簡単JAVA説明⑦ 1.型のいろいろ a.boolean ・・・true(真) false(偽)
 b. char ・・・ 2バイト文字(\u0000~\uffff)  c. byte ・・・1バイト整数 (-128~127)  d. short・・・2バイト整数 (-32768~ =2^15-1)  e. int ・・・4バイト整数 ( ~ =2^31-1)

7 簡単JAVA説明⑦ f. long ・・・8バイト整数 (ー9223372036854775808~
 (ー ~      =2^63-1) g. float・・・4バイト単精度浮動小数点数        (-128~127) h. double・・・8バイト単精度浮動小数点数

8 簡単JAVA説明⑦ ★変数の宣言 1.変数の宣言 「変数に名前をつける。」 「変数は必ず型を指定する必要がある。」
この2つをコード中で行うことを  「変数を宣言する」 という。 ※イメージとしては  「入れ物を用意し名前を付けておく」 という感じです。 Num Num

9 簡単JAVA説明⑦ 具体的には  「型名 識別子(変数);」 int Num ; char Car ;

10 簡単JAVA説明⑦ 2.応用 問:なぜ変数を宣言するときに型をしていするのか?
  実は、変数を宣言するときその型に応じたメモリ領域が確保されます。(P51図)  ・「変数を宣言する」とは変数分の領域を確保することに他ならない。  次のことも明らか。  ・型に応じて確保されるサイズは異なる。  プログラムを組む上で  ・不要な変数は宣言しない

11 簡単JAVA説明⑦ ★変数の利用 1.変数に値を代入 変数を宣言した後、特定の値を記憶させます。 Num = 5;
※上記の = は「代入」の意味です。 右辺を左辺に「代入」という意味になります。 ※イメージとしては、 「用意した入れ物にモノを入れる。」 という感じです。図3-5(P52) Num

12 簡単JAVA説明⑦ ・具体例 class Sample1 {
public static void main(String[] args) { // 整数型の変数numの宣言 int num; // 変数numに3を代入 num = 3; // 変数numの値を表示 System.out.println("変数numの値は" + num + "です。"); }

13 簡単JAVA説明⑦ ・実行結果 変数numの値は3です。

14 簡単JAVA説明⑦ 注意 なぜ出力結果は 「変数numの値はnumです。」 ではないのでしょう? 実は、出力文内で変数を直接書くと
「変数の値」 が表示されます。

15 簡単JAVA説明⑦ 2.変数の初期化 int num; num = 3; を一文で int num = 3; と書けます。
このように書くのは文頭であり、 「初期化する。」と言います。

16 簡単JAVA説明⑦ 3.変数の値の変更 次のことを理解していただければよいです。 「変数は上書き変更が可能」 => Sample2
 「変数は上書き変更が可能」  => Sample2 ★変数同士の代入  変数同士でも「= は代入の意味」を適用。  => Sample3

17 簡単JAVA説明⑦ class Sample2 { public static void main(String[] args) {
int num; num = 3; System.out.println("変数numの値は" + num + "です。"); // 【変数numの値を5に変更】 num = 5; System.out.println("変数numの値を変更しました。"); System.out.println("変数numの新しい値は" + num + "です。"); }

18 簡単JAVA説明⑦ class Sample3 { public static void main(String[] args) {
int num1, num2; num1 = 3; System.out.println("変数num1の値は" + num1 + "です。"); // 【変数num2に変数num1の値を代入】 num2 = num1; System.out.println("変数num1の値を変数num2に代入しました。"); System.out.println("変数num2の値は" + num2 + "です。"); }

19 簡単JAVA説明⑦ ★キーボードからの入力 次のSample4ではキーボードから文字を入力し
表示するサンプルを示します。 System.out.println(“”); 以外は今回は無視して一種のおまじない と思ってください。

20 簡単JAVA説明⑦ import java.io.*; class Sample4 {
public static void main(String[] args) throws IOException { // プロンプトメッセージを表示 System.out.println("文字列を入力してください。"); // キーボード入力ストリームを作成 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // キーボード入力ストリームから1行分の文字列を入力 String str = br.readLine(); // 文字列strの内容を表示 System.out.println(str + "が入力されました。"); }

21 import java.io.*; class Sample05 {
public static void main(String[] args) throws IOException { // プロンプトメッセージを表示 System.out.println("整数を入力してください。"); // キーボード入力ストリームを作成 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // キーボードから文字列を入力し、strに格納 String str = br.readLine(); // 【文字列strを整数numに変換】 int num = Integer.parseInt(str); // 整数numの値を表示 System.out.println(num + "が入力されました。"); }

22 簡単JAVA説明⑦ まとめ 変数 識別子 型と名前 予約語 変数 = ●;(=は代入) 変数は上書き可能 キーボードからの入力

23 簡単JAVA説明⑧ ★式と演算子 1.式のしくみ ・式とは?=>数式 x+y、5+3 ・プログラミング(JAVA)における式は
・式とは?=>数式 x+y、5+3 ・プログラミング(JAVA)における式は 「オペランド+演算子」  x+yでいうx、yがオペランド、+が演算子 =>Sample1

24 簡単JAVA説明⑧ class Sample1 { public static void main(String[] args) {
// 1+2の計算結果を表示 System.out.println("1+2は" + (1 + 2) + "です。"); // 3*4の計算結果を表示 System.out.println("3*4は" + (3 * 4) + "です。"); }

25 簡単JAVA説明⑧ 出力結果 1+2は3です。 3*4は12です。

26 簡単JAVA説明⑧ 2.式の値の出力 (1+2)、(3*4)はその 「評価値(計算値)」 を返します。
  (1+2)、(3*4)はその    「評価値(計算値)」   を返します。  これは変数を用いた場合も成り立ちます。 =>Sample2

27 簡単JAVA説明⑧ class Sample02 { public static void main(String[] args) {
  int num1 = 2; int num2 = 3; int sum = num1 + num2; System.out.println("変数num1の値は" + num1 + "です。"); System.out.println("変数num2の値は" + num2 + "です。"); System.out.println("num1+num2の値は" + sum + "です。"); num1 = num1 + 1; System.out.println("変数num1の値に1をたすと" + num1 + "です。"); }

28 簡単JAVA説明⑧ 出力結果 変数num1の値は2です。 変数num2の値は3です。 変数num3の値は5です。

29 簡単JAVA説明⑧ 3.応用  キーボードから適当な数値を入力してそのたし算の結果を表示する。 =>Sample3

30 import java.io.* class Sample03 { public static void main(String[] args) throws IOException { System.out.println("整数を2つ入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String str2 = br.readLine(); int num1 = Integer.parseInt(str1); int num2 = Integer.parseInt(str2); // num1 + num2を計算し、計算結果を表示 System.out.println("たし算の結果は" + (num1 + num2) + "です。"); }

31 簡単JAVA説明⑧ 実行結果 整数を2つ入力してください。 たし算の結果は11です。

32 簡単JAVA説明⑧ ★式と演算子 1.式のしくみ ・式とは?=>数式 x+y、5+3 ・プログラミング(JAVA)における式は
・式とは?=>数式 x+y、5+3 ・プログラミング(JAVA)における式は 「オペランド+演算子」  x+yでいうx、yがオペランド、+が演算子 =>Sample1

33 簡単JAVA説明⑧ class Sample1 { public static void main(String[] args) {
// 1+2の計算結果を表示 System.out.println("1+2は" + (1 + 2) + "です。"); // 3*4の計算結果を表示 System.out.println("3*4は" + (3 * 4) + "です。"); }

34 簡単JAVA説明⑧ 出力結果 1+2は3です。 3*4は12です。

35 簡単JAVA説明⑧ 2.式の値の出力 (1+2)、(3*4)はその 「評価値(計算値)」 を返します。
  (1+2)、(3*4)はその    「評価値(計算値)」   を返します。  これは変数を用いた場合も成り立ちます。 =>Sample2

36 簡単JAVA説明⑧ class Sample02 { public static void main(String[] args) {
  int num1 = 2; int num2 = 3; int sum = num1 + num2; System.out.println("変数num1の値は" + num1 + "です。"); System.out.println("変数num2の値は" + num2 + "です。"); System.out.println("num1+num2の値は" + sum + "です。"); num1 = num1 + 1; System.out.println("変数num1の値に1をたすと" + num1 + "です。"); }

37 簡単JAVA説明⑧ 出力結果 変数num1の値は2です。 変数num2の値は3です。 変数num3の値は5です。

38 簡単JAVA説明⑧ 3.応用  キーボードから適当な数値を入力してそのたし算の結果を表示する。 =>Sample3

39 import java.io.* class Sample03 { public static void main(String[] args) throws IOException { System.out.println("整数を2つ入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String str2 = br.readLine(); int num1 = Integer.parseInt(str1); int num2 = Integer.parseInt(str2); // num1 + num2を計算し、計算結果を表示 System.out.println("たし算の結果は" + (num1 + num2) + "です。"); }

40 簡単JAVA説明⑧ 実行結果 整数を2つ入力してください。 たし算の結果は11です。

41 簡単JAVA説明⑧ ★式と演算子 いろいろな演算子 1.四則演算子 +ー×÷(→÷ではなく/を使う) =>Sample04
2.文字連結演算子 ●System.out.println();中で用いている例。 Sample03の下記の+記号 System.out.println(“たし算の結果は” + (num1 + num2) + “です。”);

42 簡単JAVA説明⑧ 3.インクリメント、デクリメント演算子 ++:インクリメント ーー:デクリメント 例 a++; 、a--;

43 簡単JAVA説明⑧ ●インクリメントの前置きと後ろ置き ①b=a++; と ②b=++a; の違い ①はb=a; 、a=a+1; の意味
②はa=a+1;、 b=a; の意味

44 簡単JAVA説明⑧ 4.代入演算子 簡単JAVA説明⑦の変数の利用でも書きましたが 「=」 は「代入」の意味です。
「=」 は「代入」の意味です。 ●= は ●を行った後、代入という意味となります。 a ●= b; は、a = a ● b; と同じ意味です。 以下一覧です。  += : 加算代入  -= : 減算代入  *= : 乗算代入

45 簡単JAVA説明⑧ /= : 除算代入 %= : 剰余代入 &= : 論理積代入 |= : 論理和代入 ^= : 排他論理和代入
 /= : 除算代入  %= : 剰余代入   &= : 論理積代入  |=  : 論理和代入  ^= : 排他論理和代入  <<= : 左シフト代入  >>= : 右シフト代入 >>>= : 符号なし右シフト代入 Sample6は += の使用例です。

46 class Sample06 { public static void main(String[] args) throws IOException {   System.out.println("整数を3つ入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String str2 = br.readLine(); String str3 = br.readLine(); int sum = 0; sum += Integer.parseInt(str1); sum += Integer.parseInt(str2); sum += Integer.parseInt(str3); System.out.println("3つの数の合計は" + sum + "です。"); }

47 簡単JAVA説明⑧ 5.シフト演算子 ・右シフト 0000000000000101 = 5
 ・右シフト   = 5 5 << 2 は以下の意味:左へ2つずらし、00を埋める = 20  ・左シフト 5 >> 2 は以下の意味:右へ2つずらし、00を埋める = 1

48 簡単JAVA説明⑧ 6.演算子の優先順位 ():引数、[]:配列は最優先、次は++、-- で 計算系(四則)、比較系、論理系
  ():引数、[]:配列は最優先、次は++、-- で 計算系(四則)、比較系、論理系   のように目安を覚えておいて使う時には一  覧を参照すればよいと思われます。

49 簡単JAVA説明⑧ ・()使用時の注意 ()の省略 1.a+b+c は (a+b)+c の意味 2.a=b=c は a=(b=c) の意味
3.結合演算子の場合 System.out.println(" 1+2は" " です。"); System.out.println(" 3*4は" + 3*4+ " です。"); の場合どうなるでしょう?

50 簡単JAVA説明⑧ たし算の+と結合の+では、結合の+が優先されます。
 たし算の+と結合の+では、結合の+が優先されます。  上の例では計算の+の意味はなくなり、+は結合の意味に理解され、表示結果は  1+2は12です。となります。  これに対し*はそのまま計算の意味で  3*4は12です。と表示されます。 ★:計算部分には()をつけるというのを心がけるとよいです。

51 簡単JAVA説明⑧ 7.型変換 小サイズ(int) → 大サイズ(double) => Sample8 => 何もせずに入力可
大サイズ(double) → 小サイズ(int)  => Sample9 => キャストが必要

52 簡単JAVA説明⑧ class Sample8 { public static void main(String[] args) {
// 整数型の変数inumを宣言し、160で初期化 int inum = 160; // 整数inumの値を表示 System.out.println("身長は" + inum + "センチです。"); System.out.println("double型の変数に代入します。"); // 小数型の変数dnumを宣言し、整数inumの値で初期化 double dnum = inum; // 小数dnumの値を表示 System.out.println("身長は" + dnum + "センチです。"); }

53 簡単JAVA説明⑧ class Sample9 { public static void main(String[] args) {
// 小数型の変数dnumを宣言し、160.5で初期化 double dnum = 160.5; // 小数dnumの値を表示 System.out.println("身長は" + dnum + "センチです。"); System.out.println("int型の変数に代入します。"); // 整数型の変数inumを宣言し、小数dnumの値で初期化 int inum = (int) dnum; // 整数inumの値を表示 System.out.println("身長は" + inum + "センチです。"); }

54 簡単JAVA説明⑧ 実行結果 Sample8 身長は160センチです。 double型の変数に代入します。 身長は160.0センチです。
int型の変数に代入します。

55 簡単JAVA説明⑧ ・キャスト演算子 形式: (型名) 式 例 double a=1.0; int b = (int)a;
 ・キャスト演算子   形式: (型名) 式   例   double a=1.0; int b = (int)a;   ◎小サイズ→大サイズにも適用可能   例    int c=1; double d = (double)c;

56 簡単JAVA説明⑧ 8.異なる型どうしの演算 9.同じ型どうしの演算 異なる型どうしの演算は、一方のオペランド
  異なる型どうしの演算は、一方のオペランド   を大きなサイズの型に変換してから演算が  行なわれる。 => Sample10    9.同じ型どうしの演算   同じ型どうしの演算結果はまたその型に   なります。これが意外な結果になることもあります。   => Sample11、 Sample12

57 簡単JAVA説明⑧ class Sample10 { public static void main(String[] args) {
int d = 2; // 小数piを宣言し、3.14で初期化 double pi = 3.14; // 整数dの値を表示 System.out.println("直径が" + d + "センチの円の"); // d * piを計算し、その結果を表示 System.out.println("円周は" + (d * pi) + "センチです。"); }

58 簡単JAVA説明⑧ class Sample11 { public static void main(String[] args) {
// 整数型の変数num1を宣言し、5で初期化 int num1 = 5; // 整数型の変数num2を宣言し、4で初期化 int num2 = 4; // 小数型の変数divを宣言し、num1 / num2 の計算結果を代入 double div = num1 / num2; // 変数divの値を表示 System.out.println("5/4は" + div + "です。"); }

59 簡単JAVA説明⑧ class Sample12 { public static void main(String[] args) {
// 整数型の変数num1を宣言し、5で初期化 int num1 = 5; // 整数型の変数num2を宣言し、4で初期化 int num2 = 4; // 小数型の変数divを宣言し、num1 / num2 の計算結果を代入 double div = (double) num1 / (double) num2; // 変数divの値を表示 System.out.println("5/4は" + div + "です。"); }

60 簡単JAVA説明⑧ 実行結果 Sample10 Sample11 Sample12 直径が2センチの円の 円周は6.28センチです。
 直径が2センチの円の  円周は6.28センチです。 Sample11  5/4は1.0です。 Sample12  5/4は1.25です。

61 簡単JAVA説明⑧ ・Sample11とSample12の解説
Sample11では、 num1 / num2; はint型 とint型の割り 算のため結果もint型で5/4はint型で値は1です。 それをdouble型に入れています。 Sample12では、(double) num1 / (double) num2; は一度doubleとdoubleの型に変換し、割り算を実行 しています。そのため結果もdouble型で5/4はdouble 型で値は1.25です。それをdouble型に入れています。

62 簡単JAVA説明⑧ ・演算時の注意 演算を行う場合、基本的には、型変換を行う ことを心がけるとよい。

63 簡単JAVA説明⑧ まとめ 式のしくみ => オペランド、演算子 計算結果は評価値が返される。 演算子 1.四則演算子
式のしくみ => オペランド、演算子 計算結果は評価値が返される。 演算子 1.四則演算子 2.文字連結演算子 3.インクリメント、デクリメント演算子 4.代入演算子 5.シフト演算子

64 簡単JAVA説明⑧ 6.シフト演算子 7.演算子の優先順位 ()の使い方 8.型変換 9.キャスト演算子 10.異なる型どうしの演算
7.演算子の優先順位 ()の使い方 8.型変換 9.キャスト演算子 10.異なる型どうしの演算 11.同じ型どうしの演算 12.演算時の型変換に注意

65 簡単JAVA説明⑨ ★関係演算子と条件 1.命題と条件 「80点以上であれば合格」という命題があるとき、
「 80点以上」が「条件」となります。 81点なら 命題は真   79点なら 命題は偽  となります。

66 簡単JAVA説明⑨ ★if文 1.構文  if (条件)   (処理); => Sample1

67 import java.io.*; class Sample01 { public static void main(String[] args) throws IOException { // プロンプトメッセージを表示 System.out.println("整数を入力してください。"); // キーボード入力ストリームを作成 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // キーボードから文字列を入力し、strに格納 String str = br.readLine(); // 文字列strを整数resに変換 int res = Integer.parseInt(str); if (res == 1) // 整数resの値が1と等しい場合、以下の処理を行う System.out.println("1が入力されました。"); // 終了 System.out.println("処理を終了します。"); }

68 簡単JAVA説明⑨ 特に、 if (res == 1) System.out.println(“1が入力されました。”);
の部分は 「入力された値が1と等しいとき の処理を行う」 となり、それ以外のときは、 System.out.println(“処理を終了します。”); が実行されます。

69 簡単JAVA説明⑨ 2.複数のif文 構文 if (条件){ (処理1) (処理2) ・・・ }
=>Sample2  (問 Samle1との違いは?)

70 import java.io.* class Sample02 { public static void main(String[] args) throws IOException { System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); if (res == 1) { // 整数resの値が1と等しい場合、以下の処理を行う System.out.println("1が入力されました。"); System.out.println("1が選択されました。"); } // 終了 System.out.println("処理を終了します。");

71 簡単JAVA説明⑨ ・実行結果 その1 整数を入力してください。 1(を入力) 1が入力されました。 1が選択されました。
処理を終了します。 その2 3(1以外を入力)

72 簡単JAVA説明⑨ (問の答)処理が複数になった場合 { }で囲う必要があります。
{ }で囲う必要があります。 { }で囲わないと、2番目の処理はif条件以外でも実行されてしまいます。 => Sample21

73 import java.io.* class Sample02 { public static void main(String[] args) throws IOException { System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); if (res == 1) // 整数resの値が1と等しい場合、以下の処理を行う System.out.println("1が入力されました。"); System.out.println("1が選択されました。"); // 終了 System.out.println("処理を終了します。"); }

74 簡単JAVA説明⑨ ・実行結果 その1 整数を入力してください。 1(を入力) 1が入力されました。 1が選択されました。
処理を終了します。 その2 3(1以外を入力)

75 簡単JAVA説明⑨ 3.if ~else~ 構文 if (条件) 処理1; else 処理2; 条件が真のとき処理1、それ以外は処理2
  処理1; else 処理2; 条件が真のとき処理1、それ以外は処理2 となります。

76 簡単JAVA説明⑨ 3.if ~else~ 、複数 構文 if (条件){   処理1;   処理2;   ・・・・ } else{ 処理3; 処理4;

77 import java.io.* class Sample03 { public static void main(String[] args) throws IOException { System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); if (res == 1) { // 整数resの値が1と等しい場合、以下の処理を行う System.out.println("1が入力されました。"); } else { // そうでない場合、以下の処理を行う System.out.println("1以外が入力されました。"); }

78 簡単JAVA説明⑨ 実行結果 その1 整数を入力してください。 1(を入力) 1が入力されました。 その2 3(1以外を入力)
1以外が入力されました。

79 簡単JAVA説明⑨ 4.if~else if ~else(2つ以上の条件の処理) if (条件){ 処理1; ・・・ }
  処理2; else{   処理3;

80 import java.io.* class Sample04 { public static void main(String[] args) throws IOException { System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); if (res == 1) { // 整数resの値が1と等しい場合、以下の処理を行う System.out.println("1が入力されました。"); } else if (res == 2) { // 整数resの値が2と等しい場合、以下の処理を行う System.out.println("2が入力されました。"); } else { // そうでない場合、以下の処理を行う System.out.println("1か2を入力してください。"); }

81 簡単JAVA説明⑨ 5.switch文 構文 switch(式){ case 値1: 処理1; break; case 値2: 処理2;
    処理2; default:     処理3;

82 import java.io.*; class Sample05 { public static void main(String[] args) throws IOException { System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); switch (res) { case 1:  // 1の場合 System.out.println("1が入力されました。"); break; case 2: // 2の場合 System.out.println("2が入力されました。"); default: // いずれでもない場合 System.out.println("1か2を入力してください。"); }

83 簡単JAVA説明⑨ switch (res) { case 1: // 1の場合
System.out.println("1が入力されました。"); break; case 2: // 2の場合 System.out.println("2が入力されました。"); default: // いずれでもない場合 System.out.println("1か2を入力してください。"); }

84 簡単JAVA説明⑨ 特徴 break文は途中で処理の流れを打ち切るもの。 1.switch文は場合分け処理
2.switch = if~else if~else である。 3.break文について break文は途中で処理の流れを打ち切るもの。 付け忘れ、間違った位置に設定などの場合 でもコンパイルエラーとはならない。

85 簡単JAVA説明⑨ 6.論理演算子 &&・・・and、 ||・・・or、!・・・not
a && b ・・・a,b 双方真のとき真、それ以外は偽です。 a || b  ・・・a,b 片方真のとき真、つまり双方偽のとき偽です。 !a   ・・・aが偽のとき真です。 例 ( a 、xは実数とします。) 5 > 3 && 3 == 4 ・・・  3 == 4は偽なので、偽 x > 5 && x == 4 ・・・  双方をみたすxは存在しないので、偽 a == 6 || a >= 12 ・・・ aの値が6、または12以上で真  !( a == 6 )     ・・・ aの値が6以外は真

86 import java.io.*; class Sample07 { public static void main(String[] args) throws IOException { System.out.println("あなたは男性ですか?"); System.out.println("YまたはNを入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); char res = str.charAt(0); if (res == 'Y' || res == 'y') {  // 'Y'または'y'の場合 System.out.println("あなたは男性ですね。"); } else if (res == 'N' || res == 'n') {  // 'N'または'n'の場合 System.out.println("あなたは女性ですね。"); } else {   // いずれでもない場合 }

87 簡単JAVA説明⑨ 7.条件演算子 「?:」 構文 条件 ? 式1:式2 条件が真のとき式1を実行、偽のとき式2を実行

88 import java.io.*; class Sample08 { public static void main(String[] args) throws IOException { System.out.println("何番目のコースにしますか?"); System.out.println("整数を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); // 文字ansを宣言し、整数resの値が1か否かによって、'A'または'B'を設定する char ans = (res == 1) ? 'A' : 'B'; // 文字ansの値を表示 System.out.println(ans + "コースを選択しました。"); }

89 簡単JAVA説明⑨ char ans = (res == 1) ? ‘A’ : ‘B’; は 以下のコードと同じ処理を1行で行っている。
if (res == 1) { ans = 'A'; } else { ans = 'B'; } (res == 1) ? ‘A’ : ‘B’; をひとつと考えます。

90 簡単JAVA説明⑨ まとめ 1.関係演算子と条件 2.if文 3.if~else、if~else if ~else 4.switch文
5.論理演算子 6.条件演算子 a? b : c

91 簡単JAVA説明⑩ ★繰り返し文 1.for文 構文 for( 式1;式2;式3;){ 処理1; 処理2;   ・・・

92 簡単JAVA説明⑩ 解説 式1は、変数(カウンタ)初期値 int i=1など 式2は、条件式 式3は、変数(カウンタ)の変化 i++ など
式2は、条件式  式3は、変数(カウンタ)の変化 i++ など 初期値から条件が偽となるまで、変数 (カウンタ)の変化を変化させ処理を行う。

93 class Sample02 { public static void main(String[] args) { // 「ループ変数」iを1から5まで1ずつ変化させ、 // その間以下の処理を繰り返す for (int i = 1; i <= 5; i++) { // 「ループ変数」iの値を表示 System.out.println(i + "番目の繰り返しです。"); } // 終了 System.out.println("繰り返しが終わりました。");

94 簡単JAVA説明⑩ 結果 1番目の繰り返しです。 2番目の繰り返しです。 3番目の繰り返しです。 4番目の繰り返しです。
5番目の繰り返しです。 繰り返しが終わりました。

95 import java.io.*; class Sample03 { public static void main(String[] args) throws IOException { System.out.println("いくつ*を出力しますか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); // ループ変数iを1から「整数numの値」まで1ずつ変化させ、その間以下の処理を繰り返す for (int i = 1; i <= num; i++) { // "*"を表示 System.out.print("*"); }

96 簡単JAVA説明⑩ 2.while文 構文 while (条件){ 処理;   ・・・ }

97 class Sample05 { public static void main(String[] args) { // 整数iを宣言し、1で初期化 int i = 1; // 整数iが5以下である間、以下の処理を繰り返す while (i <= 5) { // 整数iの値を表示 System.out.println(i + "番目の繰り返しです。"); // 整数iの値に1を加える i++; } // 終了 System.out.println("繰り返しが終わりました。");

98 簡単JAVA説明⑩ このサンプルの結果はSample02と同様です。 1番目の繰り返しです。 2番目の繰り返しです。 3番目の繰り返しです。
4番目の繰り返しです。 5番目の繰り返しです。 繰り返しが終わりました。

99 簡単JAVA説明⑩ 参考:無限ループ 繰り返し数を制限せずに、繰り返しの処理を 行いたい、あるいはある条件がみたされた場
合、やめにしたいなどの場合に、 「無限ループ」を作成するという手段が考えら れます。

100 簡単JAVA説明⑩ 無限ループの構文 for (;;){  for(;true;)も可 処理 } While(true) {

101 public class Sample100 { public static void main(String[] args) { int i = 0; // 無限ループ for (;;) { if (i == 100) { System.out.println("i = " + i + " : 条件に到達"); break; } System.out.println("i = " + i + " : 計算中"); i++;

102 public class Sample101 { public static void main(String[] args) { int i = 0; // 無限ループ while(true) { if (i == 100) { System.out.println("i = " + i + " : 条件に到達"); break; } System.out.println("i = " + i + " : 計算中"); i++;

103 簡単JAVA説明⑩ 結果 Sample100、101共に下記のようになります。 i = 0 : 計算中 i = 1 : 計算中 ・・・・

104 簡単JAVA説明⑩ 3.do ~while 構文 do{ 処理1   ・・・ } while(条件);

105 簡単JAVA説明⑩ 問:なぜ、whileの他にdo whileがあるのでしょう whileとdo whileの違いはなんでしょう?
そのため 最初に(条件)が偽となると処理を一度も行わずで 終わりとなります。しかし、 do whileは 「 do 処理 while(条件) 」なので、一度は処理を行 います。

106 簡単JAVA説明⑩ 「プロ野球のある球団の入団テストでは、身長 が175cm以上でないとテストが受けられない」
ということもあるようですが、whileはこの状況を 「while (175cm以上) テスト実施」 と記述できます。 他方、 do whileはこの状況にはそぐいません。 例えばdo whileに即した状況はとにかく1名合格を出 したいという状況で 「 do テスト実施  while (合格)」 とでもなりますでしょうか。

107 class Sample06 { public static void main(String[] args) { // 整数iを宣言し、1で初期化 int i = 1; // 以下の処理を繰り返す do { // 整数iの値を表示 System.out.println(i + "番目の繰り返しです。"); // 整数iの値に1を加える i++; // 整数iが5以下の場合は、処理を繰り返す } while (i <= 5); // 終了 System.out.println("繰り返しが終わりました。"); }

108 簡単JAVA説明⑩ Sample06はSample02、 Sample05と同じ結果になり ます。 1番目の繰り返しです。
2番目の繰り返しです。 3番目の繰り返しです。 4番目の繰り返しです。 5番目の繰り返しです。 繰り返しが終わりました。

109 簡単JAVA説明⑩ 4.文のネスト ① 複数のfor文(多重ループ) for(式1; 式2; 式3){ for (式4; 式5; 式6){
      処理 ・・・ }

110 class Sample07 { public static void main(String[] args) { /* ループ変数iを0から5の手前まで1ずつ変化させ、 その間以下の処理を繰り返す */ for (int i = 0; i < 5; i++) { /* ループ変数jを0から3の手前まで1ずつ変化させ、 for (int j = 0; j < 3; j++) { // ループ変数iとjの値を表示 System.out.println("iは" + i + ":jは" + j); }

111 簡単JAVA説明⑩ 実行結果 iは0:jは0 iは0:jは1 iは0:jは2 iは1:jは0 iは1:jは1 iは1:jは2 iは2:jは0

112 簡単JAVA説明⑩ 解説 iの5回のまわるループの中で j が3回まわります。 i=0でj=0、1、2と表示されます。

113 簡単JAVA説明⑩ その他、if文との融合なども考えられます。 class Sample08 {
public static void main(String[] args) { // 論理型の変数blを宣言し、falseで初期化する boolean bl = false;   for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { if (bl == false) { // 論理値blがfalseの場合"*"を表示 System.out.print("*"); // 論理値blをtrueに変更 bl = true;

114 } else { // 上記以外の場合"-"を表示 System.out.print("-"); // 論理値blをfalseに変更 bl = false; } System.out.print("\n");

115 簡単JAVA説明⑩ 5.処理の流れの変更 ①break文 ブロックからの脱出 ループからの強制終了の場合など。=>Sample09
②switch文の中でのbreak文 処理のコントロール=>Sample10 ③continue文 繰り返し内の処理を飛ばし、ブロックの先頭に戻り 処理を続ける。 =>Sample11

116 import java.io.*; class Sample09 { public static void main(String[] args) throws IOException { System.out.println("何番目でループを中止しますか?(1~10)"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); for (int i = 1; i <= 10; i++) { // ループ変数iの値を表示 System.out.println(i + "番目の処理です。"); if (i == res) // ループの外に抜ける break; } //終了 System.out.println("終了しました。"); }

117 簡単JAVA説明⑩ 実行結果 何番目でループを中止しますか?(1~10) 3 1番目の処理です。 2番目の処理です。 3番目の処理です。
終了しました。

118 import java.io.*; class Sample10 { public static void main(String[] args) throws IOException { System.out.println("成績を入力してください(1~5)"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); switch (res) { case 1: case 2: // 1または2の場合 System.out.println("もう少しがんばりましょう。"); break;

119 case 3: case 4: // 3または4の場合 System.out.println("この調子でがんばりましょう。"); break; case 5: // 5の場合 System.out.println("たいへん優秀です。"); default: // いずれでもない場合 System.out.println("1~5までの成績を入力してください。"); }

120 簡単JAVA説明⑩ 実行結果 その① その② その③ 成績を入力してください(1~5) 1 もう少しがんばりましょう。 3
この調子でがんばりましょう。 その③ 5 たいへん優秀です。

121 import java.io.*; class Sample11 { public static void main(String[] args) throws IOException { System.out.println("何番目の処理を飛ばしますか?(1~10)"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int res = Integer.parseInt(str); for (int i = 1; i <= 10; i++) { // ループ変数iの値が整数resの値と等しい場合 if (i == res) // 以下の処理を飛ばし、ループの先頭から処理を再開する continue; // ループ変数iの値を表示 System.out.println(i + "番目の処理です。"); } // 終了 System.out.println("終了しました。"); }

122 簡単JAVA説明⑩ 実行結果 何番目の処理を飛ばしますか?(1~10) 3 1番目の処理です。 2番目の処理です。 4番目の処理です。
5番目の処理です。 6番目の処理です。 7番目の処理です。 8番目の処理です。 9番目の処理です。 10番目の処理です。 終了しました。

123 簡単JAVA説明⑩ まとめ ① for文 ② while文 ③ do~while文 2つ以上のfor文 ⑤ break continue
⑥ 無限ループ


Download ppt "JAVA入門② 変数と型 式と演算子 制御文."

Similar presentations


Ads by Google