C++ 如何切换数组中哪些点在c+中相等+;?
这些更改了我打印到屏幕上的数组。direc是在此之前的一个输入。但是,当数组[1][2]='#'时,它仍然将'#'移动到数组[1][0]C++ 如何切换数组中哪些点在c+中相等+;?,c++,arrays,if-statement,C++,Arrays,If Statement,这些更改了我打印到屏幕上的数组。direc是在此之前的一个输入。但是,当数组[1][2]='#'时,它仍然将'#'移动到数组[1][0] if (array[1][1] == '#' && direc == 'A' || direc == 'a' ) { array[1][1] = '_'; array[1][0] = '#'; } else { if (array[1][1] == '#' && direc == 'D' || dir
if (array[1][1] == '#' && direc == 'A' || direc == 'a' ) {
array[1][1] = '_';
array[1][0] = '#';
}
else {
if (array[1][1] == '#' && direc == 'D' || direc == 'd' ) {
array[1][1] = '_';
array[1][2] = '#';
}
else {
if (array[1][2] == '#' && direc == 'A' || direc == 'a' ) {
array[1][1] = '#';
array[1][2] = '_';
}
}
}
您可以添加括号,如注释中所述,如下所示
if (array[1][1] == '#' && (direc == 'A' || direc == 'a' )) {
或者,您可以使用在这种情况下,您不再需要
if (array[1][1] == '#' && std::tolower(direc) == 'a') {
如果您不满意运算符&&的优先级低于运算符&,您仍然可以添加额外的括号==
(可以看到完整的运算符优先顺序表)
array[1][1]='#'&&direc='A'| | direc='A'
可能需要更改为array[1][1]='#'&(direc='A'| | direc='A')
运算符(
的优先顺序高于运算符(
)。如果没有@lucumt建议的括号,编译器将像(数组[1][1]='#'&&direc='A')| | direc='A'
一样读取此内容,这可能不是您想要的。&&operator的优先级高于| | operator。使用上面lucumt提到的括号指定所需的优先级。