class lower_caseToUpperCase {
public static void main(String[] args)
throws java.io.IOException {
char ch, ignore;
int case_change = 0;
do {
System.out.print("Enter any number of characters: ");
ch = (char) System.in.read();
do {
ignore = (char) System.in.read();
}while(ignore != '\n');
if(ch >= 'a' && ch <= 'z') {
ch -= 32;//shows error if you use ch = ch - 32;
System.out.println(ch);
case_change++;
}
else if(ch >='A' && ch <='Z') {
ch += 32;//same as above
System.out.println(ch);
case_change++;
}
} while(ch != '.');
System.out.print("No. of case changes = " + case_change);
}
}
每当我使用char = char +32时,它都会显示松散的转换错误 但是当我使用char + = 32时它运行正常。为什么会这样? 请帮忙..
答案 0 :(得分:1)
这是因为32
是整数,所以当你写char = char + int
时你会收到警告
但是运算符+=
是特殊的,在java中它被解析为char = (char)(char + int)
所以你没有因为隐式的情况而看到警告