C++ 在if/else方面有问题
我的部分代码有问题。如果我选择选项A,它会运行并给出正确的答案,但是,如果我选择选项S或M,它什么也不会给我,只会到达它应该去的地方。已经尝试将if更改为else if,但它显示“预期语句” 抱歉,如果有些句子是葡萄牙语,请看下面:C++ 在if/else方面有问题,c++,c,visual-studio,C++,C,Visual Studio,我的部分代码有问题。如果我选择选项A,它会运行并给出正确的答案,但是,如果我选择选项S或M,它什么也不会给我,只会到达它应该去的地方。已经尝试将if更改为else if,但它显示“预期语句” 抱歉,如果有些句子是葡萄牙语,请看下面: if ((opcao2 == 'A') || (opcao2 == 'a')) { if ((LinhaA != LinhaB) && (ColunaA != ColunaB))
if ((opcao2 == 'A') || (opcao2 == 'a'))
{
if ((LinhaA != LinhaB) && (ColunaA != ColunaB)) //confirmar que se pode fazer a subtraçao entre as duas matrizes
{
printf("\nN%co %c poss%cvel somar as matrizes A + B!\nInsira novos valores\n", 198, 130, 161);
fprintf(ficheiro_out, "\n\nNão é possível somar as matrizes A + B!\nInsira novos valores\n");
}
printf("\n\n\n");
fprintf(ficheiro_out, "\n\n\n");
if ((LinhaA == LinhaB) && (ColunaA == ColunaB))
{
printf("\n%c poss%cvel somar as matrizes A + B!\n", 144, 161);
fprintf(ficheiro_out, "\nÉ possível somar as matrizes A + B!\n");
}
printf("\n\n\n");
fprintf(ficheiro_out, "\n\n\n");
}
break;
if ((opcao2 == 'S') || (opcao2 == 's'))
{
if((LinhaA != LinhaB) && (ColunaA != ColunaB)) //confirmar que se pode fazer a subtraçao entre as duas matrizes
{
printf("\nN%co %c poss%cvel somar as subtrair A - B!\nInsira novos valores\n", 198, 130, 161);
fprintf(ficheiro_out, "\n\nNão é possível subtrair as matrizes A - B!\nInsira novos valores\n");
}
printf("\n\n\n");
fprintf(ficheiro_out, "\n\n\n");
else if ((LinhaA == LinhaB) && (ColunaA == ColunaB))
{
printf("\n%c poss%cvel subtrair as matrizes A - B!\n", 144, 161);
fprintf(ficheiro_out, "\nÉ possível subtrair as matrizes A - B!\n");
}
printf("\n\n\n");
fprintf(ficheiro_out, "\n\n\n");
}
break;
if ((opcao2 == 'M') || (opcao2 == 'm'))
{
if (ColunaA != LinhaB) //confirmar que se pode fazer a multiplicação entre as duas matrizes
{
printf("\nN%co %c poss%cvel multiplicar as matrizes A * B!\nInsira novos valores\n", 198, 130, 161);
fprintf(ficheiro_out, "\n\nNão é possível multiplicar as matrizes A * B!\nInsira novos valores\n");
}
printf("\n\n\n");
fprintf(ficheiro_out, "\n\n\n");
if (ColunaA == LinhaB);
printf("\n%c poss%cvel multiplicar as matrizes A * B!\n", 144, 161);
fprintf(ficheiro_out, "\nÉ possível multiplicar as matrizes A * B!\n");
fprintf(ficheiro_out, "\n");
break;
}
}
您的
break
语句显然将程序控制发送到最终的if
else
块之外
如果需要,请使用
}else{
相反,完全删除break
语句。如果If
语句处于循环中,并且必须使用break
,那么您最好将它们包含在大括号中。我认为您将switch语句的语法与else/If语句混淆,使用术语break而不是elseNow would也是学习如何使用逐行调试器的好时机。这一点很明显。这是不久前开始的一门新的编程课,老师想赶这门课,所以他不教这类东西。我想是时候自学了。@LuisCardo:的确是。学习使用调试器很重要比学习编码更重要。