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

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

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

Microsoft Word - java a.doc

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

JavaプログラミングⅠ

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

Prog1_2nd

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

Prog1_6th

JavaプログラミングⅠ

スライド 1

Java講座

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

JavaプログラミングⅠ

PowerPoint プレゼンテーション

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

JavaプログラミングⅠ

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

新・明解Javaで学ぶアルゴリズムとデータ構造

プログラミング入門1

JavaプログラミングⅠ

ガイダンス

Java Java Java Java Java 4 p * *** ***** *** * Unix p a,b,c,d 100,200,250,500 a*b = a*b+c = a*b+c*d = (a+b)*(c+d) = 225

スライド 1

プログラミング入門1

JavaプログラミングⅠ

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx

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

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

JavaプログラミングⅠ

プログラミング実習I

gengo1-2

Microsoft PowerPoint - prog03.ppt

デジタル表現論・第6回

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

プログラミング入門1

講習No.1

Microsoft Word - 3new.doc

情報実習Ⅱ

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

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

プログラムの基本構成

デジタル表現論・第4回

PowerPoint プレゼンテーション

Microsoft PowerPoint - ruby_instruction.ppt

JavaプログラミングⅠ

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

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

第2回講義:まとめ

JavaプログラミングⅠ

Microsoft Word - no02.doc

プログラミング入門1

解きながら学ぶJava入門編

2

PowerPoint プレゼンテーション

Prog1_3rd

Microsoft PowerPoint - C1(演算と変数).ppt

ゲームエンジンの構成要素

PowerPoint プレゼンテーション

Javaプログラムの実行手順

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ


Microsoft PowerPoint - VBA解説1.ppt [互換モード]

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

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

Microsoft Word - no103.docx

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

class TestPrimitiveType{ public static

スライド 1

JavaプログラミングⅠ

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

Prog1_10th

情報技術 Java の特徴 Java は現在 事務処理計算用プログラミング言語として開発された COBOL に取って代わり C 言語や C++ と並んで 現在最も使われているプログラミング言語の一つである Java は Write Once, Run Anywhere( プログラムを一度作成したらど

マークアップ言語

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

Microsoft PowerPoint - 09.pptx

Java知識テスト問題

PowerPoint プレゼンテーション

Microsoft Word - 商業-3

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

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

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

PowerPoint Presentation

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

2

K227 Java 2

Microsoft Word - CompA-Ex doc

明解C++

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

JAVA入門

演算増幅器

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

情報処理演習 B8クラス

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

PowerPoint Presentation

sinfI2005_VBA.doc

プログラミングA

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - kougi2.ppt

Transcription:

変数と演算子 2 前回は標準出力を行う方法として println print printf について学習した その際 変数についても少し触れたが 今回はより詳しく解説していく また 演算子や標準入力 乱数の生成についても解説する 変数プログラムでデータを取り扱う場合には対象となるデータを保存する必要がでてくる このデータを保存する場所のことを 変数 と呼び 変数を説明する上ではよく データを入れておく箱 として例えられ 必要に応じて中身 ( データ ) は後から自由に変更することが可能である 6 87 num num 図 1 変数 num 変数は以下のように宣言を行うことで利用する 書式データ型変数名 ; Java に用意されているデータ型には大きく分けて int 型や double 型といった 基本型 とクラス型や配列型などのオブジェクトへのアドレスを指し示す 参照型 の 2 つがある 以下に Java で使われる型を示す 基本型 参照型 型 値 byte -128~127 short -32,768~32,767 int -2,147,483,648~2,147,483,647 整数型 -9,223,372,036,854,775,808~ long 算術型 9,223,372,036,854,775,807 char 0~65,535 float ±1.40239846E-45~±3.40282347E+38 実数型 ±4.94065645841246544E-324~ ( 浮動小数点型 ) double ±1.79769313486231507E+378 論理型 boolean true false クラス型 インターフェイス型 オブジェクトの参照 配列型 以下のプログラムは算術型変数で使える数値の範囲を出力するプログラム例である プログラム例 1 public class Prog03_01 System.out.println("byte : " + Byte.MIN_VALUE + "~" + Byte.MAX_VALUE); System.out.println("short : " + Short.MIN_VALUE + "~" + Short.MAX_VALUE); System.out.println("int : " + Integer.MIN_VALUE + "~" + Integer.MAX_VALUE); System.out.println("long : " + Long.MIN_VALUE + "~" + Long.MAX_VALUE); - 1 -

System.out.println("char : " + (int)character.min_value + "~" + (int)character.max_value); System.out.println("float : " + Float.MIN_VALUE + "~" + Float.MAX_VALUE); System.out.println("double : " + Double.MIN_VALUE + "~" + Double.MAX_VALUE); 出力例 byte : -128~127 short : -32768~32767 int : -2147483648~2147483647 long : -9223372036854775808~9223372036854775807 char : 0~65535 float : 1.4E-45~3.4028235E38 double : 4.9E-324~1.7976931348623157E308 変数名は識別子のところで示したルールに従い 各自で自由に設定できる ただし 変数名については全て小文字を用いる習慣がある また 変数は以下のようにして データを保存することで利用する この変数にデータ ( 値 ) を保存する処理のことを 変数に値を代入する という 書式変数名 = 値 ; たとえば num という変数名の int 型の変数に 100 を代入するには 以下の使用例のように行う 使用例 int num; num = 100; また 変数の宣言と値の代入は以下のように同時に行うことができる 使用例 int num = 100; 変数の宣言と同時に値の代入を行う 場合を特に 初期化 と言い その時の値を 初期値 という ただし より一般的には初めて変数に値を代入する場合も含めて 初期化 と言っているので注意が必要である 演算子前回では数値や変数を用いた四則演算も紹介した これは以下のような形で計算し 変数に値を代入することが出来る a = b + 10; ここで a b 10 のように演算の対象となるものを オペランド という また = や + は 演算子 と呼ばれ = は特に 代入演算子 + は 算術演算子 というものに分類される 以下に算術演算子と代入演算子を示す ただし 代入演算子はここに示したもの以外にもある 算術演算子 + 加算する - 減算する * 乗算する / 除算する - 2 -

% 剰余を求める 代入演算子 = 代入 += 加算したものを代入する -= 減算したものを代入する *= 乗算したものを代入する /= 除算したものを代入する %= 剰余を求め 代入する 例えば a += b; は a = a + b; と同じ処理となる 演算子には演算の優先順位がある 括弧を含め ここに示した演算子の優先順位は以下である 1 ( ) 2 *,/,% 3 +,- 4 =,+=,-=,*=,/=.%= また ここで示した演算子の他にも 関係演算子 や ビット演算子 など演算子の種類は多数ある 標準入力 Java の標準入力はキーボードに割り当てられているので ここではキーボードから値を入力する方法を示す キーボードからの入力にはいくつかの手続きが必要となるが それらの背景で動作している処理全てを現時点では理解しておく必要はないので 決まり文句として覚えておくこと 使用例を以下に示す 使用例 public class A 1プログラムの先頭 ( クラス宣 言の前 ) に書く int x = stdin.nextint(); 3 キーボードから整数値を読み込む 2main メソッドの先頭 ( 読み込み処理の 3 より前 ) に置く 次にキーボードから整数値を 2 つ読み込み それらに対して算術演算をおこなったプログラム例を示す プログラム例 2 public class Prog03_02 System.out.println("x と y で算術演算を行います "); System.out.println("x を入力してください "); int x = stdin.nextint(); System.out.println("y を入力してください "); - 3 -

int y = stdin.nextint(); System.out.println("x + y = " + ( x + y )); System.out.println("x - y = " + ( x - y )); System.out.println("x * y = " + ( x * y )); System.out.println("x / y = " + ( x / y )); System.out.println("x % y = " + ( x % y )); x と y で算術演算を行います x の値 :9 y の値 :4 x + y = 13 x - y = 5 x * y = 36 x / y = 2 x % y = 1 注目したいのは x / y = 2 と x % y = 1 の結果である x / y = 2 では 入力が 9 と 4 にしてあるので 割り算の結果は本来 2.25 であるが 整数同士の演算であるので 小数点以下が切り捨てられて 2 が表示されている また x % y = 1 では剰余演算子 % を用いている これは 9 を 4 で割った際の余りが得られる演算子であるので 1 が表示されている 整数型の入力には stdin.nextint(); を用いたが nextint() の部分についてはデータの型に応じていくつか種類がある nextbyte() byte 型整数を読み込む nextshort() short 型整数を読み込む nextint() int 型整数を読み込む nextlong() long 型整数を読み込む nextfloat() float 型実数を読み込む nextdouble() double 型実数を読み込む nextboolean() boolean 型を読み込む next() 文字列を読み込む ( スペースやタブで区切られる ) nextline() 文字列を 1 行読み込む 以下はプログラム例 2 を double 型での読み込みに変えた場合の例である 変更部分には下線を付けた プログラム例 3 public class Prog03_03 System.out.println("x と y で算術演算を行います "); System.out.print("x の値 :"); double x = stdin.nextdouble(); - 4 -

System.out.print("y の値 :"); double y = stdin.nextdouble(); System.out.println("x + y = " + ( x + y )); System.out.println("x - y = " + ( x - y )); System.out.println("x * y = " + ( x * y )); System.out.println("x / y = " + ( x / y )); System.out.println("x % y = " + ( x % y )); x と y で算術演算を行います x の値 :9 y の値 :4 x + y = 13.0 x - y = 5.0 x * y = 36.0 x / y = 2.25 x % y = 1.0 次に next() と nextline() を用いて文字列を入力した例を示す プログラム例 4 public class Prog03_04 System.out.print("Please enter your name:"); String s = stdin.next(); System.out.println("Hello, " + s + "!"); Please enter your name:daiki Takeshita Hello, Daiki! プログラム例 5 public class Prog03_05 System.out.print("Please enter your name:"); String s = stdin.nextline(); - 5 -

System.out.println("Hello, " + s + "!"); Please enter your name:daiki Takeshita Hello, Daiki Takeshita! next() を用いたプログラム例 4 の出力例では文字列にスペースが入っている部分で入力が区切られていることが確認できる 空白やタブを含めた文字列を入力する場合にはプログラム例 5 のように nextline() を用いなくてはならない また プログラム中の変数宣言に用いた String 型 は参照型変数であり 文字列を取り扱うことができる 基本的な宣言方法と初期化 値の代入を確認するため 以下にプログラムを示す プログラム例 6 public class Prog03_06 String s1 = "ABC"; String s2 = "DEF"; s2 = "GHI"; System.out.println(" 文字列は " + s1 + s2 + " です "); 出力例文字列は ABCGHI です 参照型変数のイメージを以下に示す 参照型変数そのものはどの領域を指し示しているかの情報を入れておく箱であり 実際のデータは別の領域にある よって代入の場合は文字列が代入されるのではなく 指し示しているアドレスが変更される String s1 = "ABC"; s1 s1 = "DEF"; s1 参照 参照 A B C A B C D E F 図 2 参照型変数のイメージ final 変数プログラム上では一度値を決定したら その後変更することがなく 定数のように扱いたいデータもある その場合 まちがって変更してしまわないようにするため final 変数を利用する final 変数は以下のように宣言する 書式 final データ型変数名 ; 具体的には以下のようにして用いる このプログラムは円の半径をキーボードから入力し 円周と面積を求めて表示するプログラムである - 6 -

プログラム例 7 public class Prog03_07 final double pai = 3.14159; System.out.print(" 円の半径を入力してください :"); double r = stdin.nextdouble(); System.out.println(" 円周は " + (2 * pai * r) + " です "); System.out.println(" 面積は " + (pai * r * r) + " です "); 円の半径を入力してください :5 円周は 31.4159 です面積は 78.53975 です final 変数では最初に値を代入する場合以外で代入を行うとコンパイルエラーとなる コンパイルエラーとなる例 final int x = 1; x = 2; // エラー final int x; x = 1; x = 2; // OK // エラー 乱数の生成キーボードから値を入力するのではなく コンピュータに値を生成してもらうこともできる 以下のプログラムは 0~5 のランダムな値を生成し 1 をプラスすることでサイコロの出目を生成する プログラム例 8 import java.util.random; public class Prog03_08 Random rand = new Random(); int x = rand.nextint(6) + 1; System.out.println(" サイコロの目は " + x + " です "); - 7 -

出力例 ( 実行するたびに数値の部分は変わる ) サイコロの目は 3 です 乱数の生成に関する部分は 現在は決まり文句として使用すればよいが 肝心の処理部分は rand.nextint(n) である この処理は n に値を設定することで 0 以上 n 未満のランダムな整数値を生成する このプログラム例では rand.nextint(6) としているので 0,1,2,3,4,5 のいずれかの値を生成する また 実数値を生成したい場合には rand.nextdouble() を用いる rand.nextdouble() は 0.0 以上 1.0 未満の範囲で double 型の乱数を生成する 演習 テキストで示したプログラム例 1~8 を作成すること 課題 1 Kadai1_1 三つの int 型変数に値を代入し 合計と平均を求めるプログラムを作成しなさい 平均は実数で表示するものとし 小数点以下が切り捨てられていないことを確認すること Kadai1_2 二つの実数値を読み込み その和と平均を求めて表示するプログラムを作成しなさい Kadai1_3 三角形の底辺と高さを読み込んで その面積を表示するプログラムを作成しなさい Kadai1_4 キーボードから読み込んだ整数値プラスマイナス 5 の範囲の整数値をランダムに生成して表示するプログラムを作成しなさい ( 例 :100 が入力されたならば 95~105 の範囲で出力される ) Kadai1_5-1.0 以上 1.0 未満の範囲で実数値をランダムに生成して表示するプログラムを作成しなさい レポート提出要領期限用紙提出場所 1 週間後の授業開始前まで A4 竹下研究室の入口のポスト表紙を 1 枚つけて 以下の項目を分かりやすく記述すること 授業科目名 情報技術 表紙課題名 課題 1 学年学科学籍番号氏名提出日 : 内容ソースプログラム ( プリントアウトのみ 手書きは不可 ) - 8 -