选择显示字体大小

c语言入门之分支结构(2)

  4.在使用if语句中还应注意以下问题

   (1) 在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如: if(a=5) 语句;if(b) 语句; 都是允许的。只要表达式的值为非0,即为“真”。如在if(a=5)…;中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。

   又如,有程序段: if(a=b)

printf("%d",a);
else
printf("a=0"); 本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。

   (2) 在if语句中,条件判断表达式必须用括号括起来, 在语句之后必须加分号。

   (3) 在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{} 括起来组成一个复合语句。但要注意的是在}之后不能再加分号。

   例如:

if(a>b){
  a++;
  b++;
}
else{ a=0;
  b=10;
}

   if语句的嵌套

   当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。其一般形式可表示如下:

   if(表达式)
    if语句;
   或者为
   if(表达式)
    if语句;
   else
    if语句;

   在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。例如:

   if(表达式1)
   if(表达式2)
    语句1;
   else
    语句2;

   其中的else究竟是与哪一个if配对呢?

   应该理解为:   还是应理解为:
   if(表达式1)    if(表达式1)
    if(表达式2)     if(表达式2)
     语句1;       语句1;
    else       else
     语句2;     语句2;

   为了避免这种二义性,c语言规定,else 总是与它前面最近的if配对,因此对上述例子应按前一种情况理解。

void main(){
int a,b;
printf("please input a,b: ");
scanf("%d%d",&a,&b);
if(a!=b)
if(a>b) printf("a>b\n");
else printf("a<b\n");
else printf("a=b\n");
}

   比较两个数的大小关系。

printf("please input a,b: ");
scanf("&#37;d&#37;d",&a,&b);
if(a!=b)
  if(a>b) printf("a>b\n");
   else printf("a<b\n");
else printf("a=b\n");

   本例中用了if语句的嵌套结构。 采用嵌套结构实质上是为了进行多分支选择,例3.16实际上有三种选择即a>b、a<b或a=b。这种问题用if-else-if语句也可以完成。而且程序更加清晰。因此, 在一般情况下较少使用if语句的嵌套结构。 以使程序更便于阅读理解。

void main(){
  int a,b;
  printf("please input a,b: ");
  scanf("&#37;d&#37;d",&a,&b);
  if(a==b) printf("a=b\n");
  else if(a>b) printf("a>b\n");
  else printf("a<b\n");
}


   条件运算符和条件表达式

   如果在条件语句中,只执行单个的赋值语句时, 常可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。

   条件运算符为?和:,它是一个三目运算符,即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:

   表达式1? 表达式2: 表达式3

   其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。

   例如条件语句:

if(a>b) max=a;
else max=b;

   可用条件表达式写为 max=(a>b)?a:b; 执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons