当前位置:编程学习 > C/C++ >>

C语言学习笔记(六)--分支程序设计

 

1使用if语句设计选择程序:if语句一般分为两种方式:单条件单分支、和单 条件双分支if语句。

 

1.1单条件单分支的if语句一般语法:

 

If(表达式A){

 

语句B;

 

}

 

语句执行流程:首先执行表达式A,如果表达式A的值非0,则执行语句序列B,然后流程继续往下执行。

 

例子代码:

 

 

#include "stdio.h" 

main(){ 

double score; 

printf("input the score:"); 

scanf("%lf",&score); 

if(score>=60)/*成绩开始判断*/ 

printf("\npass!\n"); 

printf("programming is over!\n");/*和判断语句并列的下一条语句*/ 

1.2单条件双分支的语法格式:

 

If(表达式A){

 

语句B;

 

}else{

 

语句C;

 

}

 

语句执行流程:首先执行表达式A的运算,如果表达式A的值非0,则执行语句B,条件不成立则执行C。

 

例子代码:

 

 

#include "stdio.h" 

main() 

double score; 

printf("input the score:"); 

scanf("%lf",&score); 

if(score>=60)/*成绩开始判断*/ 

printf("\npass!\n");/*及格说明分支*/ 

else 

printf("fail!\n"); 

printf("programming is over!\n");/*和判断语句并列的下一条语句*/ 

2嵌套的if语句

 

2.1嵌套常用格式:

 

第一种:

 

If(表达式)

 

{语句}

 

else if(表达式)

 

{语句}

 

第二种:

 

If(表达式)

 

{语句}

 

else if(表达式)

 

语句

 

else

 

语句

 

例子代码:

 

 

#include "stdio.h" 

#include "math.h" 

void main() 

{int a; 

 scanf("%d", &a); 

 if(abs(a)<10) 

  printf("%dis one bit.\n",a); 

 else if(abs(a)<100) 

       printf("%dis two bit.\n",a); 

      else if(abs(a)<1000) 

       printf("%dis three bit.\n",a); 

          else if(abs(a)<10000) 

               printf("%dis four bit.\n",a); 

              else if(abs(a)<32767) 

                   printf("%dis five bit.\n",a); 

                  else 

                   printf("thenumberistoolarge\n"); 

3.用switch分支设计选择程序

 

3.1语法形式:

 

Switch(表达式){

 

case 整型常量表达式1:语句;[break;]

 

case 整型常量表达式1:语句;[break;]

 

case 整型常量表达式1:语句;[break;]

 

[default]:语句;

 

}

 

注:[]里是可省略的。

 

3.2语句的执行流程:根据switch表达式的值,确定语句的执行入口,自上而下用表达式的值与case的值比较,相等就执行case后面的语句,如果语句结尾含有break,就中断switch,否则就继续执行下一个case,如果没有与表达式相匹配的值,就执行default后的语句。

 

switch的表达式可以为任意类型,但运算结果必须是整型或字符型。

 

例子代码:

 

 

#include "stdio.h" 

main() 

{int score; 

 printf("score="); 

 scanf("%d",&score); 

switch((int)(score/10))             /*整型量之间的除法,结果仍为整型*/ 

  case 10: 

  case 9:printf("YourgradeisA\n");break; 

  case 8:printf("YourgradeisB\n");break; 

  case 7:printf("YourgradeisC\n");break; 

  case 6:printf("YourgradeisD\n");break; 

  default:printf("YourgradeisE\n"); 

switch语句也可以嵌套,break只能让程序跳出它所在的switch分支。

 

例如:

 

switch(n1){

 

case 1:

 

switch(n2){

 

case 11:......;

 

}

 

case 2:.....;

 

}

 

4.分支程序设计实例

 

4.1判断年份是否为闰年。

 

 

#include "stdio.h" 

main(){ 

int year; 

printf("input the year:"); 

scanf("%d",&year); 

if((year%4 == 0) && (year%100 != 0)) 

printf("该年是闰年\n"); 

else if(year%400 == 0) 

printf("该年是闰年\n"); 

else 

printf("该年是平年\n"); 

4.2计算天数:

 

 

#include"stdio.h" 

main() 

 int day,month,year,sum,leap; 

 printf("\nplease input year,month,day\n"); 

 scanf("%d%d%d",&year,&month,&day); 

 switch(month)                             /*先计算某月以前月份的总天数*/ 

 { 

  case 1:sum=0;break; 

  case 2:sum=31;break; 

  case 3:sum=59;break;  

  case 4:sum=90;break; 

  case 5:sum=120;break; 

  case 6:sum=151;break; 

  case 7:sum=181;break; 

  case 8:sum=212;break; 

  case 9:sum=243;break; 

  case 10:sum=273;break; 

  case 11:sum=304;break; 

  case 12:sum=334;break; 

  default:printf("data error");break; 

 } 

 sum=sum+day;                               /*再加上某天的天数*/ 

 if(year%400==0||(year%4==0&&year%100!=0))   /*判断是不是闰年*/ 

   leap=1; 

 else 

   leap=0; 

 if(leap==1&&month>2)             

补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,