打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
if语句常见问题解析

if常见问题解析
 1. 空语句的问题
  if (3>2);
  等价于
  if (3>2)
   ;  //这是一个空语句

 2.
  if (表达式)
   A;
  else
   B;
  是正确的

  if (表达式);
   A;
  else
   B;
  是错误的,这相当于if..;是一个语句,else..;是一个语句,而C语言中并没有else开头的语句

  换言之:if..else必须配套使用,可以有if没有else,但是不能只有else没有if

 3.
  if(表达式1)
   A;
  else if(表达式2)
   B;
  else if(表达式3)
   C;
  else
   D;

  这是一个选择结构,只能四选一,即便表达式1和2都成立,也只会执行语句A
  只要有一个条件成立且语句被执行,则后面的条件不再判断

 4.
  if(表达式1)
   A;
  else if(表达式2)
   B;
  else if(表达式3)
   C;
  
  这样写语法上没有错误,但是逻辑上会有漏洞

 5.
  if(表达式1)
   A;
  else if(表达式2)
   B;
  else if(表达式3)
   C;
  else  (表达式4)
   D;

  这样写是不对的,要么就把(表达式4)去掉,要么就使用else if

 6.
  if(表达式1)
   A;
  else if(表达式2)
   B;
  else if(表达式3)
   C;
  else  (表达式4);
   D;

  这样写语法上是不会出错的,但逻辑上是错误的

  else  (表达式4);
   D;
  等价于
  else
   (表达式4);
  D;

 

/* 示例代码 if空语句问题 **
 * 时间 2015-7-22 20:01 **/

# include <stdio.h>

int main()
{
 
 if (3 > 2)
  printf("aaaa\n");
 if (1 > 2);  //注意!!!这是一个空语句,对比去掉分号时的效果
  printf("bbbb\n");
 
 system("pause");
 return 0;
}

/*
 输出结果:
-------------------
aaaa
bbbb
请按任意键继续. . .
------------------- 
*/


/* 示例代码 if..else if..else常见问题 **
 * 时间 2015-7-22 20:05              **/

# include <stdio.h>

int main()
{
 
 if (3 > 2)
  printf("aaaa\n");
 else if (4 > 2)
  printf("bbbb\n");
 else if (5 > 2)
  printf("cccc\n");
 else
  printf("dddd\n");
 
 system("pause");
 return 0;
}

/*
 输出结果:
-------------------
aaaa
请按任意键继续. . .
------------------- 
 结果分析:
 if..else if..else结构是一个多选一的结构
 只能当一个成立并且执行时后面的语句不再判
 断,因此,设计时要注意好逻辑问题
*/


/* 示例代码 if语句常见问题 **
 * 时间 2015-7-22 20:10   **/
# include <stdio.h>

int main()
{
 
 if (3 > 2)
  printf("aaaa\n");
 else if (4 > 2)
  printf("bbbb\n");
 else if (5 > 2)
  printf("cccc\n");
 else (6 > 2)
  printf("dddd\n");
 
 system("pause");
 return 0;
}

/*
 输出结果:
------------------->>
Error 1 error C2146: syntax error : missing ';' before identifier 'printf' 
------------------->>
*/

 


/* 示例代码 if语句常见问题 **
 * 时间 2015-7-22 20:10   **/
# include <stdio.h>

int main()
{
 
 if (3 > 2)
  printf("aaaa\n");
 else if (4 > 2)
  printf("bbbb\n");
 else if (5 > 2)
  printf("cccc\n");
 else (6 > 2);  //加了分号之后(6 > 2);就是一个语句,但是没有实际意义
  printf("dddd\n");
 
 system("pause");
 return 0;
}

/*
 输出结果:
-------------------
aaaa
dddd
请按任意键继续. . .
-------------------
*/

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
for语句
编程基础知识分享,非常简单的计算机IT编程点(二)
学习MISRAC之五:准确的程序流控制——(转)
else if switch
Perl IF…ELSE 语句 | 菜鸟教程
快速上手系列-C语言之基础篇(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服