iOS学习02C语言分支结构

1、 BOOL类型

  返回值:真:YES  :NO
  BOOL数据类型占一个字节的内存空间,占位符为%d
  计算机在识别时,YES就替换成1NO就替换成0
  boolC语言中的布尔类型,返回值为truefalse
  0为假,除0以为任何数字均为真 
  计算类型是字节大小(sizeof(BOOL))   
1         unsigned long size = sizeof(BOOL(其他类型...));
2         printf("size = %lu\n",size);   
3     
4         unsigned long intSize = sizeof(int);
5         printf("intSize = %lu\n", intSize);

2、 关系运算符

  用来进行两个数比较
  关系运算符的结果有两种,,用BOOL类型变量来接收

  1> > <    

1         int a = 5, b = 4, c = 3;
2         BOOL r3 = a < b < c; // 先运算 a < b,再和c比较
3         printf("r3 = %d\n", r3);

  2> >=  <=

    符合>或者=任何一个,结果为真 

        BOOL r4 = 5 >= 5;
        printf("r4 = %d\n", r4);

  3> ==, !=

    = 用来赋值,== 用来判断两个数是否相等   

1         BOOL r6 = 5 == 4;
2         printf("r6 = %d\n", r6);
3     
4         BOOL r7 = 10 != 5;
5         printf("r7 = %d\n", r7); 

3、逻辑运算符

   逻辑与:&&  逻辑或:||   逻辑非 !
  逻辑表达式的结果只有两种,,用BOOL类型的变量来接收
    
  逻辑与, 并且,同时
  表达式: 表达式1 && 表达式2
  运算规则:表达式1和表达式2同时为真,整个逻辑表达式的结果为否则为假(一假即假)

1         int a = 10;
2         int b = 20;
3         BOOL r1 = (a < b) && (b == 20);
4         printf("r1 = %d\n", r1);

  短路现象:表达式1的结果为假,整个逻辑表达式的结果为假,表达式2将不再执行

1         BOOL r3 = (a > b) && (a++);
2         printf("r3 = %d\n", r3);
3         printf("a = %d\n", a);

  逻辑或 或者,不强调同时
  表达式: 表达式1 || 表达式2
  运算规则:表达式1或者表达式2任何一个为真,整个逻辑表达式的结果为,只有当表达式1和表达式2同时为假,整个逻辑表达式结果为假(一真即真,全假则假)

1          int a = 10;
2         int b = 20;
3         BOOL r1 = (a > b) || (b == 20);
4         printf("r1 = %d\n", r1);
5     
6         BOOL r2 = (b < a) || (a != 10);
7         printf("r2 = %d\n", r2);

  短路现象:当表达式1的结果为真,整个逻辑表达式的结果为真,表达式2将不再执行    

1         BOOL r3 = (a < b) || (a++);
2         printf("r3 = %d\n", r3);
3         printf("a = %d\n", a);

  逻辑非  取反

        BOOL r4 = NO;
        BOOL r5 = !r4;
        printf("r5 = %d\n", r5);

4、if语句

   第一种形式

    if (条件表达式) {
          分支语句;
       }
  条件表达式为真,执行分支语句,如果为假,执行分支语句下面的内容

  练习:定义一个变量age,从键盘输入值,如果age大于等于18,输出”你已经成年了“。

1         int age = 0;
2         printf("请入年龄:");
3         scanf("%d", &age); 
4         if (age >= 18) {
5             printf("你已经成年了");
6         }

  第二种形式

    if (条件表达式) {
          语句1;
       } else {
          语句2;
       }
  如果条件表达式为真,执行语句1,否则执行语句2

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

  (能被400整除) || ((能被4整除) && (不能被100整除))

 1      int year = 0;
 2         printf("请输入一个年份\n");
 3         scanf("%d", &year); 
 4 
 5         BOOL r1 = year % 400 == 0;
 6         BOOL r2 = year % 4 == 0;
 7         BOOL r3 = year %100 != 0;
 8     
 9         if (r1 || (r2 && r3)) {
10              printf("是闰年\n");
11         } else {
12             printf("不是闰年\n");
13         }

  第三种形式

    if (条件表达式1) {
          语句1;
       } else if (条件表达式2) {
          语句2;
       } else {
          语句4;
       }

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

 1      char ch = 0;
 2         printf("请输入一个字符\n");
 3         scanf("%c", &ch);
 4     
 5         if (ch >= '0' && ch <= '9') {
 6             printf("this is digital\n");
 7         } else if (ch >= 'A' && ch <= 'Z') {
 8             printf("this is  capital letter\n");
 9         } else if (ch >= 'a' && ch <= 'z') {
10             printf("this is letter\n");
11         } else {
12             printf("other\n");
13         }

  条件运算符 ? :
    条件表达式? 表达式1 : 表达式2;
    如果条件表达式为真,执行表达式1,否则执行表达式2

5、switch...case分支

   switch (整型或者字符型的表达式) {
        case 值1(整型或者字符型的常量): {
            语句1;
            break;
         }
        case 值2: {
            语句2;
            break;
        }
        ......
        default: {
            语句3;
            break;
        }

  先执行switch后的表达式,根据表达式的值查找想要的case分支,并执行分支语句
     default:默认分支,如果没有找到对应的分支,执行default分支
     break:结束当前的case分支

  练习:从控制台输入1~4,对应打出春夏秋冬的英文词。

 1      int value = 0;
 2         printf("请输入1~4的整数\n");
 3         scanf("%d", &value);
 4     
 5         switch (value) {
 6             case 1:
 7                 printf("Spring\n");
 8                 break;
 9             case 2:
10                 printf("Summer\n");
11                 break;
12             case 3:
13                 printf("Autumn\n");
14                 break;
15             case 4:
16                 printf("Winter\n");
17                 break;
18             default:
19                 break;    
20 }
posted @ 2016-03-07 22:16  墨隐于非  阅读(273)  评论(0编辑  收藏  举报