基本データ型:char:問題5
問題:以下のプログラムの実行結果として適切なものを選択しなさい。
A. char型とchar型は足し算できないため、コンパイルエラーになる
B. char型とchar型は足し算できないため、実行時に例外が発生する
C. aの文字コード値97とbの文字コード値98の足し算なので、195が表示される
D. aとbが連結され、abが表示される
public class M {
public static void main(String[] args) {
char x = 'a';
char y = 'b';
System.out.println(x + y);
}
}
解答:
C. aの文字コード値97とbの文字コード値98の足し算なので、195が表示される
解説:
System.out.println()の引数はx+yです。
char型同士の足し算は、整数の加算を行い、計算結果はint型です。
System.out.println()の引数がint型であれば、数値を表示するため、
C. aの文字コード値97とbの文字コード値98の足し算なので、195が表示される
が正解です。
もし、
System.out.println("結果:" + x + y);
であれば、先に"結果:"との加算(文字列の連結)が行われます。
この例では、
結果:ab
が出力されます。
A. char型とchar型は足し算できないため、コンパイルエラーになる
B. char型とchar型は足し算できないため、実行時に例外が発生する
C. aの文字コード値97とbの文字コード値98の足し算なので、195が表示される
D. aとbが連結され、abが表示される
public class M {
public static void main(String[] args) {
char x = 'a';
char y = 'b';
System.out.println(x + y);
}
}
解答:
C. aの文字コード値97とbの文字コード値98の足し算なので、195が表示される
解説:
System.out.println()の引数はx+yです。
char型同士の足し算は、整数の加算を行い、計算結果はint型です。
System.out.println()の引数がint型であれば、数値を表示するため、
C. aの文字コード値97とbの文字コード値98の足し算なので、195が表示される
が正解です。
もし、
System.out.println("結果:" + x + y);
であれば、先に"結果:"との加算(文字列の連結)が行われます。
この例では、
結果:ab
が出力されます。
基本データ型:char
■char型は文字を1文字のみ格納する文字型です。
通常、'(シングルクォート)で文字をくくります。
char x = 'a';
■複数の文字(文字列)を格納するには、String型を使用して
文字列を"(ダブルクォート)でくくります。
String s = "abc";
■"は文字列を表すため、""の中が1文字だったとしてもchar型の変数には格納できません。
char a = "a"; // コンパイルエラー
■変数のサイズは16バイトで、全角文字も格納できます。
char b = "あ";
■16バイトの符号なし整数として、ユニコードと呼ばれる文字コード(数値)が格納されます。
\uの後にユニコードを4桁の16進数で指定できます。
char c = '\u0061'; // 文字aの文字コード、10進の数値では91
System.out.println(c); // aが表示される
■整数であるため、+や-を用いた算術演算が行えます。
c++; // 文字コードの値が91から92になる。
System.out.println(c); // bが表示される
■改行などプログラム上で入力できない文字は「\n」などの
エスケープシーケンスとよばれる指定で代入できます。
char d1 = '\n'; // 改行
char d2 = '\t'; // タブ
char d3 = '\\'; // \(円記号もしくはバックスラッシュ)
char d4 = '\''; // '(シングルクォート)
問題1
問題2
問題3
問題4
通常、'(シングルクォート)で文字をくくります。
char x = 'a';
■複数の文字(文字列)を格納するには、String型を使用して
文字列を"(ダブルクォート)でくくります。
String s = "abc";
■"は文字列を表すため、""の中が1文字だったとしてもchar型の変数には格納できません。
char a = "a"; // コンパイルエラー
■変数のサイズは16バイトで、全角文字も格納できます。
char b = "あ";
■16バイトの符号なし整数として、ユニコードと呼ばれる文字コード(数値)が格納されます。
\uの後にユニコードを4桁の16進数で指定できます。
char c = '\u0061'; // 文字aの文字コード、10進の数値では91
System.out.println(c); // aが表示される
■整数であるため、+や-を用いた算術演算が行えます。
c++; // 文字コードの値が91から92になる。
System.out.println(c); // bが表示される
■改行などプログラム上で入力できない文字は「\n」などの
エスケープシーケンスとよばれる指定で代入できます。
char d1 = '\n'; // 改行
char d2 = '\t'; // タブ
char d3 = '\\'; // \(円記号もしくはバックスラッシュ)
char d4 = '\''; // '(シングルクォート)
問題1
問題2
問題3
問題4
charとStringの違い:問題
問題:以下のプログラムの実行結果として適切なものを選択しなさい。
A. String型の変数には"a"は代入できないので、コンパイルエラーが発生する
B. String型の変数は加算できないので、コンパイルエラーが発生する
C. 文字コードにおけるaの次はbなのでbが表示される
D. 文字コードにおけるaの値は97なので、1加算した結果98が表示される
public class M {
public static void main(String[] args) {
String s = "a";
s++;
System.out.println(s);
}
}
解答:
B. String型の変数は加算できないので、コンパイルエラーが発生する
解説:
char型の変数は文字コードを
符号なし整数として格納しているため、
加算などの算術演算が可能ですが、
String型の変数は加算できません。
A. String型の変数には"a"は代入できないので、コンパイルエラーが発生する
B. String型の変数は加算できないので、コンパイルエラーが発生する
C. 文字コードにおけるaの次はbなのでbが表示される
D. 文字コードにおけるaの値は97なので、1加算した結果98が表示される
public class M {
public static void main(String[] args) {
String s = "a";
s++;
System.out.println(s);
}
}
解答:
B. String型の変数は加算できないので、コンパイルエラーが発生する
解説:
char型の変数は文字コードを
符号なし整数として格納しているため、
加算などの算術演算が可能ですが、
String型の変数は加算できません。