while ((ch = System.in.read()) != ' ') 不兼容类型
时间: 2024-09-11 21:06:27 浏览: 39
在这个代码片段中,`while ((ch = System.in.read()) != ' ')` 出现"不兼容类型"的错误可能是由于类型不匹配。`System.in.read()` 返回的是一个 `int` 类型的值,代表从标准输入流(如键盘)读取的一个字节。在 Java 中,字符类型的 `' '` 对应的是 ASCII 码中的空格,ASCII 空格对应的整数值是 32。
所以,你需要将 `char ch` 的初始化和赋值分开,并明确地将读取到的字节转换成字符。这里是一个修复后的例子:
```java
import java.io.*;
class KY2_9 {
public static void main(String[] args) throws IOException {
int ch; // 使用 int 存储输入的字节
char inputChar; // 存储字符类型的值
System.out.println("按 1/2/3 数字键可得大奖!");
System.out.println("按空格键后回车可退出循环操作.");
while ((ch = System.in.read()) != -1) { // 当遇到文件结束符(-1)时退出循环
if (ch == ' ') {
break; // 用户输入空格,退出循环
} else {
inputChar = (char) ch; // 将字节转换为字符
switch (inputChar) {
case '1':
System.out.println("恭喜你得大奖,一辆汽车!");
break;
case '2':
System.out.println("不错呀,你得到一台笔记本电脑!");
break;
case '3':
System.out.println("没有白来,你得到一台冰箱!");
break;
default:
System.out.println("真不幸,你没有奖品!下次再来吧。");
}
}
}
}
}
```
现在,程序可以正常处理字符输入并检查是否为空格了,不会出现类型不兼容的错误。
阅读全文