|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
随堂练习里
#include <stdio.h>
int main()
{
char israin,isfree;
printf("是否有空?[Y/N]");
scanf("%c",&isfree);
getchar();
printf("是否下雨?[Y/N]");
scanf("%c",&israin);
if(isfree=='Y');
{
if(israin=='Y');
printf("走");
}
else //else without a previous if'这一行出现的错误
{
printf("88");
}
return 0;
}
本帖最后由 费尔曼 于 2018-2-11 01:50 编辑
if else语句中,if可以单独使用,但是else不可以。
还有,C语言中分号相当于一段语句的结束,LZ在if后面直接打了分号,那么这个if语句就直接结束了。
回到LZ文中的代码。
if(isfree=='Y'); //这段语句在语法上是没问题的,然而因为if后面直接跟了分号,那么判断条件相当于是个空语句,也就是说,虽然这个语句执行了,但实际上什么都不会发生。
接着再往下看,紧跟着:
{
if(israin=='Y'); //这里又来了个分号,那这条语句和下面那条printf是相互独立的,意思就是,不管你这个if条件是否正确,下面那个printf都会输出“走”
printf("走");
}
再往下看:
else
{
printf("88");
}
//这里单独出现了一个else,之前说过,else不能单独出现,所以这段语句就有问题了。
好了解释完毕后,LZ把代码中if(isfree=='Y');和if(israin=='Y'); 后面的分号去掉,再编译试试。
|
|