如果说明故障排除
If Statement TroubleShooting
我拥有的代码是:
if(seatingChart[row][seat][incorrectQuestion].question==seatingChart[compareRow][compareSeat][compareIncorrectQuestion].question&&seatingChart[row][seat][incorrectQuestion].answerChoice==seatingChart[compareRow][compareSeat][compareIncorrectQuestion].answerChoice||seatingChart[row][seat][incorrectQuestion].answerChoice==compareAnswerChoice)
我使用的数据结构是:
struct incorrect
{
unsigned int question;
unsigned int answerChoice
};
concormeanswerchoice返回一个未签名的整数值。实际上,参数中的每个值都是一个无符号的整数值,但是最终之后的参数或似乎打破了if语句。这些值都不是负的,它们从字符(小写和大写)转换为1到26个包含的无签名整数。该汇编未返回错误,向量中的参数是指其正确的位置。
当我简单地使用时:
if (seatingChart[row][seat][incorrectQuestion].answerChoice ==
compareAnswerChoice)
以下代码工作正常,但是当我添加前者if语句的任何前参数时,内部的代码无法正常工作。
我知道我在做不正确的事情,但是我不知道那是什么,所以我无法纠正自己。有人可以告诉我参数怎么了?
在C 操作员&&
中的优先级(13)比OpeAtor ||
(14)高(13)。您需要if
语句中的括号。
@user3093536使用调试器很容易调试此类内容。创建具有已知值的条件,并测试if()
语句与操作员&&
和||
在其中如何使用。介入代码。
让我们开始清理一点,以便我们看到发生了什么:
unsigned int question =
seatingChart[row][seat][incorrectQuestion].question;
unsigned int answer =
seatingChart[row][seat][incorrectQuestion].answerChoice;
unsigned int compare_question =
seatingChart[compareRow][compareSeat][compareIncorrectQuestion].question;
unsigned int compare_answer =
seatingChart[compareRow][compareSeat][compareIncorrectQuestion].answerChoice;
if (question == compare_question && answer == compare_answer ||
answer == compareAnswerChoice)
逻辑和操作员&&
的优先级高于逻辑或操作员||
,因此这等效于:
if ((question == compare_question && answer == compare_answer) ||
answer == compareAnswerChoice)
您可能想要的是:
if (question == compare_question &&
(answer == compare_answer || answer == compareAnswerChoice))
我想您的问题在于&&
操作员的优先级高于||
。尝试添加parens如果语句
if(seatingChart[row][seat][incorrectQuestion].question==seatingChart[compareRow][compareSeat][compareIncorrectQuestion].question &&
(seatingChart[row][seat][incorrectQuestion].answerChoice==seatingChart[compareRow][compareSeat][compareIncorrectQuestion].answerChoice
|| seatingChart[row][seat][incorrectQuestion].answerChoice==compareAnswerChoice))
相关文章:
- Geeksforgeeks C 程序故障排除:IEE 754 表示法为十进制
- 如何进行故障排除:未定义对"非虚拟 thunk to ..."的引用
- 针对代码::块设置的 SFML 故障排除
- 对"无效的抽象返回类型"进行故障排除
- 需要帮助对内存泄漏源进行故障排除 - C++
- 使用许多嵌套的#include语句对编译器错误进行故障排除
- 仅制作一列qtreewidget可编辑//故障排除
- 如果说明故障排除
- Ole 拖放故障排除
- 对简单 Arduino 类进行故障排除
- 如何排除vulkan空白屏幕故障
- 强名称dll-如何进行故障排除
- C++:使用嵌套的 if/else 语句循环进行故障排除
- 对我的 c++ 程序进行故障排除
- OpenCV 3.0 源代码安装故障排除
- C++对我的命令行计算器进行故障排除
- C++:对循环进行故障排除
- 如何对CMake构建的不可复制SegFault进行故障排除
- 简单的暴力故障排除
- 如何排除故障:未定义的引用“非虚拟思维……”