サティヤムBansal氏:
コードの下の仕事をしない、コンパイラは「int型からchar型への可能性のある損失の多い変換」を語ります
public class Main
{
public static void main(String[] args) {
char ch;
ch = 65;
ch=ch+1;
System.out.println(ch);
}
}
なぜエラーなしでコードの作品の下に行います。
public class Main
{
public static void main(String[] args) {
char ch;
ch = 65;
ch+=1;
System.out.println(ch);
}
}
しながらコードの両方における唯一の違いは、単なるある「= CH + 1」及び「CH + = 1」?
メナ:
Javaではチャー変数のサイズは、2バイト、int型の変数の大きさであるが:4バイト。
NB:バイトは256までの数値を保持することができる8ビットで構成されています。
あなたは(CH 1)を実行するときに最初のコードスニペットでは、コンパイラは1は、このようにあまりにもintとして最終的な値については、デフォルトではint型の値であると考えています。そして、文字であるchの中に最終的な値を置くためのコンパイラしようと... OPSは... 2バイトのサイズを持つ変数に4バイトで表される値に合うようにしようとしています!
あなたはこのように行う場合、この問題を修正することができます。CH =(char型)(CH + 1)
第二のスニペットでは、直接そのサイズが何であれ、変数CHをインクリメントしています。したがって、あなたはchar型の変数にint型の値に合うようにしようとする問題では実行されません。