• 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);
    }


  • 相关阅读:
    无根树转有根树
    HDU(1853),最小权匹配,KM
    一位10年Java工作经验的架构师聊Java和工作经验
    一位资深程序员大牛给予Java初学者的学习路线建议
    Java基础部分全套教程.
    假如时光倒流,我会这么学习Java
    一位10年Java工作经验的架构师聊Java和工作经验
    一位资深程序员大牛给予Java初学者的学习路线建议
    Java基础部分全套教程.
    成为一名JAVA高级工程师你需要学什么
  • 原文地址:https://www.cnblogs.com/SunnyYue/p/3970281.html
Copyright © 2020-2023  润新知