【发布时间】:2020-05-04 18:34:21
【问题描述】:
当我输入字符时,输出显示为错误输入。我不明白出了什么问题。编译器中给出的输入是大写字母 E 或 D,但是当它符合 switch case 时,默认情况下运行。
public static void main(String[] args) throws IOException {
//Scanner
//Scanner s = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int q = Integer.parseInt(br.readLine());
char c;
int i=0, j=0;
int id=0, jd=0;
int arr[][] = new int[q][q];
int temp[][] = new int[q][q];
for(int ip=0; ip<q; ip++)
{
c = (char)br.read();
switch(c)
{
case 'E':
for(int al=i; al<i+1; al++)
{
for(int al2=j; al2<j++; al2++)
{
arr[i][j] = Integer.parseInt(br.readLine());
}
}
}
i++;
j++;
break;
case 'D':
System.out.println(arr[id][jd]);
id++;
jd++;
break;
default:
System.out.println("wrong input");
}
}
【问题讨论】:
-
在默认分支中可以打印
"wrong input, c = " + c看看实际值是多少? -
1.看来,
case 'D'位于 switch 语句 2 之外。如果您只需要获取大写字母,则可以使用Character.toUpperCase()方法 - 或者只需添加小写case标签。 -
在 switch 语句中,大部分 case E 在 switch 之外。你需要检查你的括号。
标签: java char bufferedreader