Developer

2022.08.31
Lv1

【はじめてのJava】基本データ型 ~復習問題~

はじめてのJava

このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。


基本データ型 ~復習問題~

プログラムの中で「変数」の宣言時に用いた「データ型」について、Java Silverにおいてよく狙われるポイントを詳しく解説していきます。

今回は、Javaで扱われるデータ型の中でも最も基礎的なクラスであった「基本データ型」と呼ばれる種類のデータ型について復習問題を扱います。

目次


基本データ型のおさらい

データ型 種類 データの幅 データの表現範囲
byte 整数 8ビット -128 ~ 127
short 整数 16ビット -2の15乗~2の15乗 -1
(-32,768 ~ 32,767)
int 整数 32ビット -2の31乗~2の31乗 -1
(-2,147,483,648 ~ 2,147,483,647)
long 整数 64ビット -2の63乗~2の63乗 -1
(-9,223,372,036,854,775,808L ~
9,223,372,036,854,775,807L)
float 浮動小数点数 32ビット IEEE 754 規格の単精度浮動小数点数
double 浮動小数点数 64ビット IEEE 754 規格の単精度浮動小数点数
char 文字 16ビット Unicode規格の1文字(\u0000~\uFFFF)
boolean 論理値 1ビット trueまたはfalse

基本データ型は、上記の表の通り8つの種類がありました。

さらに基本データ型は大きく4種類に分類が可能であり、
(1)整数値を表すbyte,short,int,long型  記事はこちら
(2)浮動小数点数を表すdouble,float型  記事はこちら
(3)文字を表すchar型            記事はこちら
(4)論理値を表すboolean型      記事はこちら
それぞれの詳細については、各記事にて紹介してきました!


問題

それでは、さっそく問題を解いてみましょう!

次のうち、正しく変数を定義できているもの(コンパイルエラーとならないもの)を全て選びなさい。

A. long a = 20_22_L;
B.    float b = 2022.15;
C.    short c = 0x2022;
D.   char d = 'string'
E.    boolean e = no;
F.    int f = 0_2022;


解答

解答 C,F

今回の問題を解く上で注意すべきポイントは、3点です!
[1]変数の表記(リテラル)に誤りがないか
[2]識別子に誤りがないか
[3]アンダースコア(_)の使い方に誤りがないか

これらの3点に注意しながら、設問を見ていきましょう!

A. long a = 20_22_L;
[3]アンダースコアの使い方に誤りがあります。アンダースコアは記号に意味はありませんが、数値の可読性を高めるためJavaSE7以降導入されました。アンダースコアの記述には以下3つのルールがあります。
(1)先頭・末尾で使用してはいけない
(2)記号の前後で使用してはいけない(long値のL,l・float値のF,f・小数点)
(3)16進数表記の先頭「0x」2進数表記の先頭「0b」の前後、途中で使用してはいけない。
Aは、long値のLの前にアンダースコアを使用しているため、誤りです。

B.    float b = 2022.15;
[1]変数の表記(リテラル)に誤りがあります。float型の数値であれば、数値の一番後ろに「F、f」のいずれかを記述する必要があります。2011.15の後にFないしfを記述する、もしくはfloat型でなくdouble型の変数として定義することで正常に変数定義できます。

C.    short c = 0x2022;
正解の選択肢です。short型の変数を正しく定義しています。short型は、16ビット(‐32,768~32,768)までの整数値が定義できます。今回は、16進数2022を定義しています。
10進数になおすと、16の3乗×2(8192) + 16の1乗×2(32) + 16の0乗×2(2) =8226 となります。

D.   char d = 'string'
[1]変数の表記(リテラル)に誤りがあります。char型の変数は、文字の定義が可能ですが文字列の定義はできません。文字列の定義を行うには、オブジェクト参照型のString型を使用する必要があります。

E.    boolean e = no;
[1]変数の表記(リテラル)に誤りがあります。boolean型は真偽値を表すデータ型で、true(はい)またはfalse(いいえ)の判定結果しか定義できません。falseではなく、noで定義をしようとしているため、コンパイルエラーとなります。

F.    int f = 0_2022;
正解の選択肢です。アンダースコアを正しく使用し、int型の8進数2022を表しています。
アンダースコアは、16進数表記の先頭「0x」2進数表記の先頭「0b」の前後、途中では使用してはいけないルールでしたが、8進数表記「0」の後ろでは使用が可能です。


データ型と変数編・次回の内容

今回は基本データ型の復習問題を扱いました。
基本データ型は使用頻度が非常に高い基本となるクラスです!
次回は、オブジェクト参照型の「String型」についての説明を行います。

次回記事はこちら


初めてのJavaシリーズの目次はこちら
データ型と変数編の記事一覧はこちら


java 11 の練習問題一覧はこちら
はじめてのJavaシリーズの練習問題一覧はこちら