Microsoft Word - java a.doc

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

ガイダンス

Prog1_2nd

スライド 1

JavaプログラミングⅠ

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

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

JavaプログラミングⅠ

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

JavaプログラミングⅠ

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

JavaプログラミングⅠ

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

デジタル表現論・第6回

JavaプログラミングⅠ

<4D F736F F D2091E F196E291E889F090E C4816A82CC838C E646F6378>

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

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

プログラミングA

r1.dvi

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

プログラミング入門1

Microsoft PowerPoint - prog03.ppt

K227 Java 2

プログラムの基本構成

2

プログラミング入門1

Java講座

Prog1_3rd

Prog1_6th

マークアップ言語

JavaプログラミングⅠ

PowerPoint プレゼンテーション

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

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

JavaプログラミングⅠ

Prog1_10th

2

デジタル表現論・第4回

Prog1_15th

プログラミング入門1

PowerPoint プレゼンテーション

情報処理Ⅰ

講習No.1

Microsoft PowerPoint - prog09.ppt

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

Microsoft PowerPoint - prog09.ppt

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

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

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

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

ポインタ変数

JavaプログラミングⅠ

Prog1_11th

JavaプログラミングⅠ

スライド 1

メソッドのまとめ

Prog2_9th

PowerPoint Presentation


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

Prog2_10th

プログラミング入門1

2

プログラミング実習I

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

マークアップ言語

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

GEC-Java

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

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

※ ポイント ※

gengo1-2

PowerPoint プレゼンテーション

PowerPoint Presentation

Javaプログラムの実行手順

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

情報実習Ⅱ

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

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

Microsoft PowerPoint - prog13.ppt

Microsoft PowerPoint - prog13.ppt

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

PowerPoint プレゼンテーション

JavaプログラミングⅠ

Java言語 第1回

ポインタ変数

Microsoft PowerPoint - prog04.ppt

kantan_C_1_iro3.indd

プログラミング入門1

プログラミング入門1

第 1 回 C 言語講座 1. コンピュータって? だいたいは 演算装置 制御装置 記憶装置 入出力装置から構成されている 演算装置 CPU の一部で実際に計算を行う装置 制御装置 CPU の一部で演算装置や入出力装置 記憶装置の読み書きなどを制御する装置 記憶装置プログラムや情報 データを一時的

JavaプログラミングⅠ

Microsoft PowerPoint - chap10_OOP.ppt

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

Microsoft PowerPoint - kougi2.ppt

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

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

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

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

Transcription:

4 入出力の基本として ディスプレイへの文字出力と キーボードからの文字入力の方法を学びます 入出力とは何か 標準出力 標準入力 43

4.1. 入出力とは プログラムと外部機器の間でデータをやりとりすることをいいます プログラムから出て行く方向が 出力 プログラムに入って来る方向が 入力 です 出力 外部機器 プログラム 入力 外部機器 外部機器はさまざまな種類があります 出力を行うには ディスプレイ プリンタ スピーカなどが 入力を行うには キーボード マウス マイクなどが使われています プログラムでは通常 標準の出力機器として ディスプレイ 標準の入力機器として キーボード が指定されています これらとやりとりすることを 標準入出力 と呼びます Java 言語では 標準出力を System.out 標準入力を System.in というキーワードで示します プログラム 標準出力 ディスプレイ System.out 標準入力 キーボード System.in この章では 標準出力と標準入力を使って 文字をやりとりする方法を説明します 44

4.2. 次の命令は カッコの中に書いた文字列または変数の値を ディスプレイへ表示します 文字のディスプレイ表示 ( 改行あり ) System.out.println(" 文字列 " または変数 ); 文字のディスプレイ表示 ( 改行なし ) System.out.print(" 文字列 " または変数 ); 使用例 int a = 5; System.out.println("a"); System.out.println(a); a 5 値は そのまま表示 変数は 中身が表示 使用例 System.out.println(" こんにちは "); System.out.println(" さようなら "); System.out.print(" こんにちは "); System.out.print(" さようなら "); こんにちは さようなら こんにちは さようなら println() は行末で改行 print() は行末で改行されないので 次の文字列が右側に表示されます 上記の命令で 複数の文字列や変数を連結させるには 文字列連結演算子の + を使います ( ここでの記号 + は 数学の加算とは違います 文字列をつなぐだけです ) 半角スペース 使用例 連結 変数 aの値 変数 b の値 int a = 5, b = 10; System.out.println(a + " " + b); 5 10 System.out.println(" 変数の値は " + a + " です "); 変数の値は 5 です 値の途中で改行してはダメです 1つの値は 複数行にまたがることはできません 連結 文字列 変数 a の値 文字列 System.out.println( こんにちは さようなら ); これはふつうの書き方なので OK System.out.println( こんにちは さようなら ); 値の途中で改行しているからダメ 45

Java では 表示する桁数などの書式指定を行う方法が複数あります ここでは C 言語とほぼ同じ書式で利用できる printf 文について説明します printf 文の書式 System.out.printf(" 文字列または変換指定子 ", 変数, 変数, ); printf 文の文字列中では % に続く文字は 変換指定子 と呼ばれる特殊な文字です 変数を指定された書式へ変換してから表示する役割を持ちます 主な変換指定子 変換指定子 意味 使われる型 %c 1 文字を出力する char %s 文字列を出力する String %d 整数 (10 進数 ) で出力する byte %x 整数 (16 進数 ) で出力する short %o 整数 (8 進数 ) で出力する int long %f 浮動小数点型を出力する float %e 浮動小数点型を指数形式で出力する double %b 判断型を出力する boolean 普通の文字として % を表示したいときは %% のように2つ並べる さらに桁数などを % の直後につけて指定できます 記号 ( 数値 ) 説明使用例 - 左詰めに表示 ( 普通は右詰め ) %-d + プラス符号も表示 ( 普通はマイナス符号のみ表示 ) %+d %+ld 整数 実数 桁数を指定します ( 整数を表示するとき 先頭に 0 を付けると空いている桁を 0 でうめます ) 実数の小数点以下の桁数を指定します整数部 : 小数点を含めたすべての桁数小数部 : 小数点以下の桁数 %10d %8s %04d %9.2f %12.6f 整数の 12 を %d の書式指定を使い分けて表示すると 次のようになります %d 12 左寄せで表示します %4d 12 指定された桁数内で 右寄せで表示します %04d 0012 空いた桁をゼロで埋めて表示します 46

浮動小数点型用の %f は 桁数指定の範囲に気をつけましょう %9.3f 小数部の桁数 12345.678 全体の桁数 ( 小数点も含む ) 変換指定子は printf 文の文字列中で複数指定できますが 対応する変数と 個数と順序を一致させる必要があります int i; double a, b; ( 中略 ) System.out.printf("%04d %9.2f %9.2f n", i, a, b); 使用例 1) 1つの変数だけ表示 int a = 10; System.out.printf("%d n", a); 10 2) 文字列と変数を一緒に表示 double x = 1.23; System.out.printf("answer = %f n", x); answer = 1.23 3) 複数の文字列と変数を一緒に表示 int i = 1; double a = 1.23, b = 4.56; System.out.printf(" 番号は %d a は %f b は %f です n", i, a, b); 番号は 1 a は 1.23 b は 4.56 です 47

print println printf 文を使って文字列を画面表示します 文字列を連結してから表示カッコ () の中に何も書かないと改行だけ行われる %s の部分が 文字列に置き換わって表示される %s の間に数字を入れると桁数を指定できる PrintTest1.java 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 /* 例題 4-1 文字列の書式設定付き画面表示 組番号氏名 */ public class PrintTest1 public static void main(string[] args) // 文字列を表示 String s1 = " 東海太郎 "; System.out.print(" メッセージ : "); System.out.println(" 私の名前は " + s1 + " です "); System.out.println(); // 改行だけ行う System.out.printf("%s, World. n", "Hello"); // 文字列 Hello を表示 System.out.printf("%10s, World. n", "Hello"); // 桁数を指定 ( 右寄せ ) System.out.printf("%-10s, World. n", "Hello"); // 桁数を指定 ( 左寄せ ) 実行結果 48

printf 文を使って書式設定付きで数値を画面表示します PrintTest2.java 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 /* 例題 4-2 数値の書式設定付き画面表示 組番号氏名 */ public class PrintTest2 public static void main(string[] args) %d の部分が 整数に置き換わっ // 整数の書式設定て表示される int a = 12; %d の間に数字を入れると桁数を System.out.printf("%d n", a); // 変数 aの値を表示指定できる System.out.printf("%4d n", a); // 桁数を指定 ( 右寄せ ) System.out.printf("%04d n", a); // 桁数を指定 ( 右寄せ 空いている桁をゼロで埋める ) System.out.println(); // 改行だけ行う // 浮動小数点数の書式設定 double x = 0.0123; System.out.printf("%f n", x); // 変数 x の値を表示 System.out.printf("%9.3f n", x); // 桁数を指定 System.out.printf("%.3f n", x); // 小数部の桁数だけ指定 System.out.printf("%e n", x); // 指数表現で表示 %f の部分が 浮動小数点数に置き換わって表示される %f の間に数字を入れると 全体と小数部の桁数を指定できる %e の部分が 浮動小数点数に置き換わって指数表現で表示される 実行結果 49

4.3. Java では様々な入力方法が用意されています ここでは代表的な 2 つの方法について説明します Scanner は文字を区切り記号ごとに 文字列を取得する機能を持っています これをキー入力に利用すると 直接型を指定してキー入力した値を変数に入れることができます 基本データ型への入力命令 メソッド名 機能 取得する型 next() 文字列を読み込みます String nextbyte() byte 型の整数を読み込みます byte nextshort() short 型の整数を読み込みます short nextint() int 型の整数を読み込みます int nextlong() long 型の整数を読み込みます long nextfloat() float 型の浮動小数点数を読み込みます float nextdouble() double 型の浮動小数点数を読み込みます double nextboolean() boolean 型の値を読み込みます boolean これらの命令は 半角スペースで区切られた値を1つ取得します 値を入力してから Enter キーを押すと取得されます Enter キーを押さないと 入力待ち状態で プログラムの実行が一時停止したまま先へ進まなくなります プログラム実行時に間違った型をキー入力すると エラーが出て異常終了します 命令を呼び出す前に 準備をする命令が必要になります 次に nextint() で一つの整数を読み込む場合の書き方を説明します 一行分の文字列を読み込む場合の書き方 import java.util.scanner; 1 ソースコードの最初に書く class Sample public static void main(string[] args) Scanner sc = new Scanner(System.in); 注 1) int a = sc.nextint(); 2 キー入力する前に書く ブロック内で一度書けば良い 3 キー入力したい所に書く 注 1) 2の命令で sc は変数名なので違う名前にしても大丈夫です ただし 3の命令の sc と関連付けられているので 2と3で同じ変数名にしないといけません また 2の命令はブロック内では 1 つだけ書けば良いので キー入力を繰り返したい場合は3 の命令だけを複数書けば良いことになります 50

キー入力を行い 様々な型で読み込みます InputTest1.java 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 /* 例題 4-3 キー入力組番号氏名 */ import java.util.scanner; public class InputTest1 public static void main(string[] args) Scanner sc = new Scanner(System.in); // 文字列の取得 System.out.println(" 文字列を入力して下さい "); String s = sc.next(); System.out.println(" " + s + " がキー入力されました "); // 整数の取得 System.out.println(" 整数を入力して下さい "); int a = sc.nextint(); System.out.println(" " + a + " がキー入力されました "); // 浮動小数点数の取得 System.out.println(" 実数を入力して下さい "); double x = sc.nextdouble(); System.out.println(" " + x + " がキー入力されました "); キー入力命令を使う場合に ソースコード先頭部分で必要入力元を キーボードに設定キー入力した値を String 型で読み込みで 値を変数 s へ代入キー入力した値を int 型で読み込んで 値を変数 a へ代入キー入力した値を double 型で読み込んで 値を変数 x へ代入 実行結果例 自分で値を入力して Enter キーを押す 51

一文字や 一行をまるごと 文字列 として取得する方法です あとで説明するファイル入出力などに応用しやすいのですが 複数の場所に命令文をたくさん書かなければならないのが欠点です 一行分の文字列を読み込み readline(); 一行の区切りを Enter キーの入力で判別する 一文字を読み込み read(); これらの命令は 単独で使うことができません 命令を呼び出す前に 準備をする命令が必要になります 次に readline() で一行分の文字を読み込む場合の書き方を説明します 一行分の文字列を読み込む場合の書き方 import java.io.*; 1 ソースコードの最初に書く 2 main() メソッドの ) と の間に書く class Sample public static void main(string[] args) throws IOException BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 注 1) String s = br.readline(); 3 main() メソッドのブロック内で 先頭の方に書く 注 2) 4 キー入力したい所に書く 注 1) 3の命令で br は変数名なので違う名前にしても大丈夫です ただし 4の命令の br と関連付けられているので 3と4で同じ変数名にしないといけません また 3の命令はブロック内では 1 つだけ書けば良いので キー入力を繰り返したい場合は4 の命令だけを複数書けば良いことになります 注 2) readline() は一行分の文字つまり 文字列 を読み込むので 値を保管するのは String 型の変数が必要になります s は変数名なので違う名前にしても大丈夫です また readline() は一行の区切りを Enter キーの入力で判別するので 文字をキーで打っても Enter キーが押されるまでは変数に読み込まれません したがって Enter キーが押されるまではプログラムが一時停止した状態になります 52

次の仕様を満たすプログラムのソースコードを記述しなさい 画面表示は下図に示す実行例の書式にしたがうこと ソースファイル名は Human.java とする 入力: 次の 3 つの値をキー入力する氏名 (String 型 ) 年齢(int 型 ) 身長(double 型 ) 出力: 入力した値を結合して 次のように一文の文章として画面表示する ( 氏名 ) は ( 年齢 ) 歳で 身長は ( 身長 )cm です カッコで示した部分には 入力した値が入る 身長の値は 小数点以下 1 桁まで表示すること 変数名は 自分で適当な名前を考えて付ける 実行例 ( 太字は入力した値 ) 氏名は? 東海太郎年齢は? 21 身長は? 162 東海太郎は 21 歳で 身長は 162.0cm です 以上 53

< 入出力とは何か> (1) プログラムから外部機器へ出て行く方向のデータの流れを何と呼ぶか書きなさい (2) 外部機器からプログラムへ入って来る方向のデータの流れを何と呼ぶか書きなさい (3) 通常の標準出力の装置は何か書きなさい (4) 通常の標準入力の装置は何か書きなさい (5) Java において 標準出力を示すキーワードを書きなさい (6) Java において 標準入力を示すキーワードを書きなさい < 標準出力 > (7) 文字列 Hello を表示してから改行する命令を一文で書きなさい (8) 文字列 Hello を表示するが改行しない命令を一文で書きなさい (9) 数値 123 を表示してから改行する命令を一文で書きなさい (10) 数値が入った変数 x を 全体の桁数 6 小数部の桁数 2 で表示する命令を一文で書きなさい 変数の宣言は書かなくて良い < 標準入力 > (11) Scanner を利用する時 ソースコード先頭付近で必要な命令を 1 つ書きなさい (12) Scanner で読み込み先を標準入力に指定する命令を 1 つ書きなさい (13) Scanner を利用する時 int 型の値を読み込んで int の変数 b に代入する命令を一文で書きなさい (14) キー入力命令で 実行時に注意すべきことを 2 つ挙げなさい 54