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

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
プログラミング言語としてのR 情報知能学科 白井 英俊.
プログラミング基礎I(再) 山元進.
基礎プログラミングおよび演習 第9回
プログラミング基礎I(再) 山元進.
C言語 第2講 生物機能制御学講座 濱田 農学部7号館209室.
プログラミング基礎I(再) 山元進.
情報基礎A 第10週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
第20章 Flyweight ~同じものを共有して無駄をなくす~
情報処理技法 (Javaプログラミング)2 第2回 前期の復習(2)
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
プログラムの制御構造 選択・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
JAVA入門.
暗号技術 ~JAVAプログラム③~ (7週目)
第二回 VB講座 電卓を作ろう.
プログラミング論 II 2008年10月30日 文字列
プログラミング入門 電卓を作ろう・パートIV!!.
アルゴリズムとプログラミング (Algorithms and Programming)
暗号技術 ~JAVAプログラム①~ (5週目)
プログラミング入門2 第2回 型と演算 条件分岐 篠埜 功.
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
04: 式・条件分岐 (if) C プログラミング入門 基幹7 (水5) Linux にログインし、以下の講義ページ を開いておくこと
第7回 条件による繰り返し.
第7回 プログラミングⅡ 第7回
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
情報処理Ⅱ 第2回:2003年10月14日(火).
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
アルゴリズムとプログラミング (Algorithms and Programming)
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
情報処理Ⅱ 第3回 2007年10月22日(月).
プログラミングⅡ 第2回.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
暗号技術 ~JAVAプログラム②~ (6週目)
情報処理Ⅱ 第2回 2005年10月14日(金).
情報処理Ⅱ 第2回 2006年10月13日(金).
C言語講座 制御(選択) 2006年 計算技術研究会.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
情報処理Ⅱ 2005年10月28日(金).
JAVA入門⑥ クラスとインスタンス.
プログラミング基礎演習 第4回.
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
情報処理Ⅱ 第2回 2004年10月12日(火).
第3回簡単なデータの入出力.
プログラミング入門2 第5回 配列 変数宣言、初期化について
情報処理Ⅱ 小テスト 2005年2月1日(火).
printf・scanf・変数・四則演算
情報処理Ⅱ 第3回 2004年10月19日(火).
情報処理Ⅱ 2006年10月20日(金).
C言語講座 四則演算  if ,  switch 制御文.
情報処理Ⅱ 2006年10月27日(金).
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
情報処理技法(Javaプログラミング)1 第8回 同じ処理を何回も繰り返すには?
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

簡単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 + "です。"); }

簡単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 + "です。"); }

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

簡単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 + "が入力されました。"); }

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 + "が入力されました。"); }

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

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

簡単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) + "です。"); }

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

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

簡単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 + "です。"); }

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

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

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) + "です。"); }

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

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

簡単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) + "です。"); }

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

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

簡単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 + "です。"); }

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

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

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) + "です。"); }

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

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

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

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

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

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

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 + "です。"); }

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

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

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

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

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

簡単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 + "センチです。"); }

簡単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 + "センチです。"); }

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

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

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

簡単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) + "センチです。"); }

簡単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 + "です。"); }

簡単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 + "です。"); }

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

簡単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型に入れています。

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

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

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

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

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

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("処理を終了します。"); }

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

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

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("処理を終了します。");

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

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

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("処理を終了します。"); }

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

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

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

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以外が入力されました。"); }

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

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

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を入力してください。"); }

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

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を入力してください。"); }

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

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

簡単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以外は真

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 {   // いずれでもない場合 }

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

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 + "コースを選択しました。"); }

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

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

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

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

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("繰り返しが終わりました。");

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

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("*"); }

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

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("繰り返しが終わりました。");

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

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

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

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++;

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++;

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

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

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

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

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("繰り返しが終わりました。"); }

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

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

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); }

簡単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

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

簡単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;

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

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

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("終了しました。"); }

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

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;

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

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

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("終了しました。"); }

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

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