天天看點

iOS學習_Lesson02_分支結構

學習内容如下:

  • BOOL類型
  • 關系運算符
  • 邏輯運算符
  • if else
  • switch case

其中最重要的是if語句,應用範圍廣,使用頻率也高。

一.BOOL類型:

BOOL是表示非真即假的資料類型,占記憶體中一個位元組,存儲的資料為YES和NO,

YES = 1,NO = 0;

二.關系運算符

operator name

>

大于

<

小于

==

等于

>=

大于等于

<=

小于等于

!=

不等于

關系運算符組成的式子為關系表達式,其結果為BOOL類型的資料

例子:

  • 輸出兩個數中較大的一個
int a = , b = , max = ;
    printf("please enter two numbers\n");
    scanf("%d%d", &a, &b);
    max = a > b ? a : b;
    printf("max = %d\n", max);
           
  • 輸出三個數中較大的一個
int a = , b = , c = , max = ;
    printf("please enter three numbers\n");
    scanf("%d%d%d",&a, &b, &c);
    max = a > b ? a : b;
    max = max > c ? max : c;
    printf("max = %d\n", max);
           

三.邏輯運算符

operator name result

&&

邏輯與 邏輯與運算符兩端的表達式都為真,則為真,否則為假

丨丨

邏輯或 邏輯或運算符兩端的表達式都為假,則為假

!

邏輯非 原有為真,非後為假。原有為假,非後為真
  • 邏輯與運算
int a = , b = ;
    BOOL result = (a > b) && (a < b);
    printf("result = %d\n", result);
           
  • 邏輯或運算
int a = , b = ;
    BOOL result = (a > b) || (a < b);
    printf("result = %d\n", result);
           
  • 邏輯非運算
int a = , b = ;
    BOOL result = !(a > b);
    printf("result = %d\n", result);
           
  • 邏輯運算的短路
    • 邏輯與短路

      左側表達式為假,右側不參與運算

    int a = , b = , c = ;
        BOOL result = (a > b) && c++;
        printf("result = %d\n", result);
        printf("c = %d\n", c);
    
        result = ;
        c = 
               
    • 邏輯或短路

      左側表達式為真,右側不參與運算

    int a = , b = , c = ;
        BOOL result = (a < b) || c++;
        printf("c = %d\n", c);
    
        result = ;
        c = 
               

四.if else

首先了解一下C語言的程式結構:

1. 順序結構:main函數是程式的主入口,程式從上至下,從左至右依次執行;
2. 分支結構:程式執行到某個位置,進行條件判斷,根據不同的結果,執行不同的操作;
3. 循環結構:程式執行到某個位置,重複執行某個操作;
           

if語句有三種表達形式:

if(條件表達式){
        語句;
    }

  if(條件表達式){
        語句;
    } else {
        語句;
    }

  if(條件表達式){
        語句;
    } else if(條件表達式){
        語句;
    } else {
        語句;
    }
           

五.switch case

int season = ;
    printf("please enter a number between 1 and 4\n");
    scanf("%d", &season);
    switch (season) {
        case :
            printf("spring\n");
            break;
        case :
            printf("summer\n");
            break;
        case :
            printf("autumn\n");
            break;
        case :
            printf("winter\n");
            break;
        default:
            printf("please enter a number between 1 and 4\n");
            break;
    }
           

習題

  • 判斷奇數還是偶數
int a = ;
    printf("please enter a number\n");
    scanf("%d", &a);
    if(a %  == ){
        printf("this is an even number\n");
    } else {
        printf("this is an odd number\n");
    }
           
  • 從鍵盤輸入一個加減乘除的式子,輸出結果
float number1 = , number2 = , result = ;
    char operator = ;
    printf("please give me a formula like '1 + 1'\n");
    scanf("%f%c%f", &number1, &operator, &number2);
    switch (operator) {
        case '+':
            result = number1 + number2;
            break;
        case '-':
            result = number1 - number2;
            break;
        case '*':
            result = number1 * number2;
            break;
        case '/':
            resulst = number1 / number2;
            break;
        default:
            break;
    }
    printf("result = %f\n", result);
           
  • 從鍵盤輸入字元,則輸出字元,從鍵盤輸入數字,則輸出數字
int a = ;
    char b = ;
    if(scanf("%d", &a)){
        printf("%d\n", a);
    } else if(scanf("%c", &b)){
        printf("%c\n", b);
    }
           

繼續閱讀