|
C
|
double a = 1;
if ( a ) {
printf( "double でも OK" );
}
| |
|
Java
|
double a = 1;
if ( a ) {
System.out.println("");
}
--------------------------------------------------------
互換性のない型
検出値 : double
期待値 : boolean
if ( a ) {
| |
|
C
|
int a = 1;
// 正しい
if ( a == 1 ) {
printf( "a と 1 が等しい\n" );
}
// 間違い
if ( a = 1 ) {
printf( "左辺値 a が 0 で無い\n" );
}
| |
|
Java
|
int a = 1;
// 正しい
if ( a == 1 ) {
System.out.println("a と 1 が等しい");
}
// エラー
if ( a = 1 ) {
System.out.println("");
}
--------------------------------------------------------
互換性のない型
検出値 : int
期待値 : boolean
if ( a = 1 ) {
| |
|
|
int a = 1;
boolean flg = true;
a = flg;
flg = a;
a = (int)flg;
flg = (boolean)a;
| |
|
|
|
正しい
|
int a = 1;
if ( a == 1 ) {
System.out.println("a は 1 に等しい");
}
| |
|
エラー
|
int a;
if ( a == 1 ) {
System.out.println("a は 1 に等しい");
}
--------------------------------------------------------
変数 a は初期化されていない可能性があります。
if ( a == 1 ) {
| |
|
|
|
|
int [] a = null;
if ( a == null ) {
System.out.println("a は無効です");
}
int i = 0;
// 実際のメモリを割り付けます
a = new int[10];
for( i = 0; i < 10; i++ ) {
// 配列の内容は 0 で初期化されています
System.out.println(a[i]);
}
| |
|
|
int [] a = {1,2,3};
// 実行結果は 3 です
System.out.println(a.length);
| |
|
|
int [] a = {1,2,3};
int [] b = a;
// a[1] も 100 になります
b[1] = 100;
System.out.println(a[1]);
System.out.println(b[1]);
if ( a == b ) {
System.out.println("同一オブジェクトです");
}
| |
|
|
int [] a = {1,2,3};
int [] b = a.clone();
b[1] = 100;
System.out.println(a[1]); // 2
System.out.println(b[1]); // 100
if ( a != b ) {
System.out.println("それぞれ別のオブジェクトです");
}
| |
|
|
|