我试图让这段代码像一组选项一样工作。我已经对它进行了测试,无论我为moduleChoice投入了什么,我都会直接进入gradeTestMain。有人可以解释我做错了吗?
int main (void)
{
int moduleChoice=5;
printf ("Please choose which module you would like to use.\n");
printf ("press 1 for GradeTest version 1.1\n");
printf ("press 0 to exit\n");
scanf_s ("%d", &moduleChoice);
if (moduleChoice == 1,
gradeTestMain());
if (moduleChoice == 0,
printf ("Thank you for using GradeTest version 1.1! Have a great day!"));
if (moduleChoice /= 1,0,
printf ("That is not a valid choice. Please try again."));
答案 0 :(得分:3)
if (moduleChoice == 1,
gradeTestMain());
应改为
if (moduleChoice == 1)
gradeTestMain();
同样适用于其他if
s。
你需要关闭括号 - 否则就意味着
if (moduleChoice == 1, gradeTestMain());
表示
if (moduleChoice == 1, gradeTestMain())
{
;
}
这意味着。
评估moduleChoice == 1
,丢弃结果,然后重新评估gradeTestMain()
。
然后检查gradeTestMain()
的返回值是true还是false。但同样,因为if
内部没有任何内容,无论gradeTestMain
是返回true还是false,结果都是相同的。
另一件事是
if (moduleChoice /= 1,0,
没有做你认为的事情。将其更改为else
。将之前的if
更改为else if
所以你需要
if (moduleChoice == 1)
gradeTestMain();
else if (moduleChoice == 0)
printf ("Thank you for using GradeTest version 1.1! Have a great day!");
else
printf ("That is not a valid choice. Please try again.");
投资一本书可能是个好主意。
答案 1 :(得分:2)
int main (void)
{
int moduleChoice=5;
printf ("Please choose which module you would like to use.\n");
printf ("press 1 for GradeTest version 1.1\n");
printf ("press 0 to exit\n");
scanf ("%d", &moduleChoice);
if (moduleChoice == 1)
gradeTestMain();
else if (moduleChoice == 0)
printf ("Thank you for using GradeTest version 1.1! Have a great day!");
else
printf ("That is not a valid choice. Please try again.");
这项工作在C