C语言基础知识之(二):分支

来源:互联网 发布:spss软件的应用 编辑:程序博客网 时间:2024/06/02 07:58

程序的三种结构:顺序、分支、循环

1、顺序 按照先后顺序执行

int a = 5;

int b =7;

先执行a= 5,在执行b=7.

2、分支:if分支有三种形式

形式1:

if(条件表达式){

语句

}

先执行()内的条件表达式,如果条件表达式结果为真,则执行if后面{}内的代码;如果条件表达式结果为假,则跳过{ }内的代码,执行if语句后面的代码。

注意:

上述代码表达式括号()后面跟了’;',导致if语句为空语句,大括号内的语句跟if语句没有关系,无论条件真假都会执行语句。

在if条件表达中,等号== 常量写于变量前面,为了防止等号 == 写不全。

一般的声明的变量只能写在 = 前面。

 

 

形式2:

if(条件表达式){

语句1;

}else{

语句2;

}

当条件表达式为真时,执行语句1,否则执行语句2.      

例题:

输入一个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年

提示:闰年:能被400整除或者能被4整除但是不能被100整除

  int year = 0;

  printf("Pleaseenter a year: \n");

  scanf("%d",&year);

 

  if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {

       printf("The year is a leap year. \n");

    }

   else{

      printf("The year ia a non-leapyear. \n");

}

注意:

if中的条件表达式比较复杂,可读性差。最好的在括号外面定义,增强可读性。如下:

    BOOL r1 = (year % 400 == 0);

    BOOL r2 = (year % 4 == 0) && (year % 100 != 0);   

   if (r1 || r2) {

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

    }else {

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

    }

形式3、 

if(条件表达式1){

语句1;

}else if(条件表达式2){

语句2;

}else{

语句3

}

如果条件表达式1为真,执行语句1。如果条件表达式1为假,条件表达式2为真,执行语句2。如果条件表达式1与条件表达式2都为假,执行语句3。

注意:if-else 最多使用2组。多于2组的使用switch –case函数。

例题:

从键盘输入一个字符,如果是数字打印this is digital。如果是大写字母,打印this is capital letter。如果是小写字母,打印this is letter。如果是其他字符,打印 other。  

   char m = 0; 

   printf("please enter a character; \n");

   scanf("%c", &m);

  

   if (m >= '0' && m <= '9') {

       printf("this is digital. \n");

   }else if (m >= 'A' && m <= 'Z'){

       printf("this is capital letter. \n");

   }else if (m >= 'a' && m <= 'z'){

       printf("this is letter. \n");

   }else{

       printf("other \n");

    }

 3、条件运算符  ?

     公式:条件表达式 ? 表达式1 :表达式2

     条件表达式结果是:真或假

     如果条件表达式结果为真,则运算结果为表达式1的结果;

     如果条件表达式结果为假,则运算结果为表达式2的结果;

例题:

比较两个数,定义变量接受两个数中的最小值

if/else 实现 

    int num1 = 2;

    int num2 = 4;

    int minValue = 0; //存放最小值

   

   if (num1 > num2) {

       minValue = num2; //num1的值大于num2

    }else {

       minValue = num1; //num1的值小于num2

    }

   printf("minValue = %d", minValue);


条件运算符实现:   

   minValue = num1 > num2 ? num2 : num1;   

   printf("minValue= %d", minValue);

4、switch语句

格式: 

    switch(整型/字符型表达式) {

       case 值1:{   语句1;break;  }

       case 值2:{   语句2;break;  }

…….

       case 值n:{   语句n;break;  }       

        default:{    语句n+1;break;  }

    }

1、如果表达式的值没有和任何一个case后面的值匹配成功,程序直接执行default语句。

2、default分支如果没有语句,可以没有{},但是必须要有break。

3、break语句在switch中的作用:结束当前case分支的执行,并且结束switch语句

4、多个case可以运行同一个代码段

5、整个default语句都可以去掉

6、case中定义变量需要加{ }。case后面的值是整型或字符型常量、整型常量表达式。不能使用变量。

例题:

按照考试成绩(A、B、C、D)的等级输出百分制分数段,A、B、C :输出60分以上 D:输出60分以下

   char level = 'A';

   switch (level) {

       case 'A':

       case 'B':

       case 'C':{

           printf("60分以上 \n");

           break;

       }

       case 'D':{

           printf("60分以下 \n");

           break;

       }

   

       default:

           break;

    }

   return 0;

}

  

0 0
原创粉丝点击