連載
» 2008年03月18日 00時00分 公開

ソースコードで学ぶ SJC-P 5.0 ドリル(7):基本データ型の型変換を習得する (1/2)

本連載は、サン・マイクロシステムズ認定のJava資格Sun Certified Programmer for Java 2 Platform 5.0(SJC-P5.0)に対応しています。最新の出題傾向に基づいて、ソースコードの問題を中心に毎回模擬問題を1問出題します。ソースコードに慣れながら、SJC-P合格を目指して頑張りましょう。

[山本道子,有限会社 Ray]

 連載第7回の今回は、基本データ型の型変換に関する出題です。

基本データ型の暗黙変換

 基本データ型で宣言した変数には、宣言時の型(intやdoubleなど)で扱えるデータの範囲内であれば、値を代入することができます。

 また、もし異なる型であっても以下のルールに従えば暗黙変換が行われ、変数に値を代入することができます。

→ → 暗黙に型変換が行われる  → →
byte
short
int
long
float
double
char
← ← キャストを使用する ← ←
図1 型変換の流れ

●例

int i = 100;
double d = i; // iには100.0が代入される

図2 暗黙変換を使用した例 図2 暗黙変換を使用した例

基本データ型のキャスト演算子を使用した型変換

 先ほどの例にあるように、intの値をdouble型の変数に代入する場合には、暗黙で変換されますが、その逆を行おうとするとコンパイルエラーになります。もし強制的に変換する場合はキャスト演算子を使用します。キャスト演算子は、(変換したい型)対象の値と記述します。ただし、数値によっては一部の情報が失われるので使用時には注意してください。

【構文】
(変換したい型)対象の値

●例

double d = 10.5;
int i = (int)d; // iには10が代入される。

図3 キャストを使用した例 図3 キャストを使用した例
class Sample1 {
  public static void main(String[] args) {
    int a = 100;
    double b = 3.14;
    double x = a;
    // int y = b;  // コンパイルエラー
    int y =(int)b;
    System.out.println(x);
    System.out.println(y);
  }
}
サンプルコード1 

C:\sample>java Sample1
100.0
3
C:\sample>
サンプルコード1の実行結果

演習問題

 以下の問題を考えてみてください。解答と解説は次のページにあります。

問題

 次のプログラムをコンパイルし、実行するとどうなりますか? 1つ選択してください。

 1. public class Test{
 2.   public static void main(String[] args) {
 3.     char num1 = 'a';  int num2 = 10;
 4.     print(num1);
 5.     print(num2);
 6.   }
 7.   public static void print(int c) {
 8.     System.out.println("int    : " + c);
 9.   }
10.   public static void print(double d) {
11.     System.out.println("double : " + d);
12.   }
13. }

A.

int : 97
int : 10

B.

int : 97
double : 10.0

C.

double : 97.0
double : 10.0

D. コンパイルエラー

E. 実行時エラー

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。