程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 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)                         /*如果是閏年且月份大於2,總天數應該加一天*/ 

 sum++; 

 printf("It is the %dth day.",sum); 

}   

 

 


摘自 letthinking的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved