程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 成為C++高手之條件語句

成為C++高手之條件語句

編輯:關於C++

scanf函數

printf是向控制台輸出,scanf是從控制台輸入,也就是從控制台獲取用戶輸入的東西。當然也是格式化的方式,比如要獲取用戶輸入的整數:
int number;
int r = scanf(“%d”,&number);

因為要用一個變量保存用戶輸入的東西,所以scanf()用輸出參數的形式返回用戶輸入的值。所以第二個參數傳入的是number的地址(&是取地址運算符)。用戶輸入的如果是數字,就保存那個數到number中,並且r是非0值;如果不是數字, r是0,number中是隨機數,此時number不應該被使用。

注意用scanf()每次最好只獲取一個數,否則很容易引起混亂。

寫一個計算器

學到這裡,可以寫一個簡陋的小程序了:計算器。第一版需求很簡單:用戶輸入兩個整數,輸出和,退出。代碼如下:

#include 

int main(void)
{
    //保存用戶輸入的數
    int number1;
    int number2;

    //提示用戶輸入第一個數:
    printf("請輸入第一個數:\n");
    scanf("%d",&number1);

    //提示用戶輸入第二個數
    printf("請輸入第二個數:\n");
    scanf("%d",&number2);

    //計算
    int he = number1+number2;
    //輸出結果
    printf("%d+%d = %d\n",number1,number2,he);

    return 0;
}

控制語句

上一節的例子其實很脆弱,用戶輸入不是數字的話,依然能計算出結果,這就讓用戶覺得很扯蛋了。改進一下吧。我們判斷scanf的返回值,如果是0,就不計算並警告用戶,否則就輸出結果,程序如下:

#include 

int main(void)
{
    //保存用戶輸入的數
    int number1;
    int number2;


    //提示用戶輸入第一個數:
    printf("請輸入第一個數:\n");
    int r =scanf("%d",&number1);
    //查看Scanf是否收到了正確的數
    if(r==0){
        printf("別調皮,這樣不好玩,我走了\n");
        //程序退出
        return 0;
    }

    //提示用戶輸入第二個數
    printf("請輸入第二個數:\n");
    r = scanf("%d",&number2);
    if(r==0){
        printf("別調皮,這樣不好玩,我走了\n");
        //程序退出
        return 0;
    }

    //程序運行到這裡說明兩次輸入都正確

    //計算
    int he = number1+number2;
    //輸出結果
    printf("%d+%d = %d\n",number1,number2,he);

    return 0;
}

用if來進行判斷。判斷條件放在小括號裡。r==0 是一個算式,運算符“==”表示計算兩邊是否相等。如果相等,結果就是真(true),否則就是假(false)。結果是真的話,就進入if的大括號中執行,否則就略過大括號。

If的判斷條件可以寫的很復雜,但要看懂它,只需記住一個原則:那裡面都是算式,最終計算結果為0就是false,非0就是true。負數也是true啊。至於if裡如何寫出組合條件,請自行上網查找,或參考與此文章配套的視頻:http://edu.csdn.net/course/detail/2057。歡迎C語言初學者加入此群討論:535807023 。

計算器第二版

這一版讓我們的計算器支持加減乘除。要支持加減乘除,除了獲取用戶輸入的兩個運算數之外,還應獲取運算符。運算符也可以用數字來代表,比如我們跟用戶約定,1代表加,2代表減,3代表乘,4代表除。代碼如下:

int main(void)
{
    //保存用戶輸入的數
    int number1;
    int number2;
    int opt;//運算符

    //提示用戶輸入第一個數:
    printf("請輸入第一個數:\n");
    int r =scanf("%d",&number1);
    //查看Scanf是否收到了正確的數
    if(r==0){
        printf("別調皮,這樣不好玩,我走了\n");
        //程序退出
        return 0;
    }

    //提示用戶輸入第二個數
    printf("請輸入第二個數:\n");
    r = scanf("%d",&number2);
    if(r==0){
        printf("別調皮,這樣不好玩,我走了\n");
        //程序退出
        return 0;
    }

    //提示用戶輸入運算符
    printf("請輸入運算符(1234分別對應加減乘除):\n");
    r = scanf("%d",&opt);
    if(r==0){
        printf("運算符也是數字,別搞錯好嗎?你這樣讓我怎麼混? 我走了\n");
        //程序退出
        return 0;
    }

    //程序運行到這裡說明兩次輸入都正確

    //檢查是運算符是否是1234之一
    if(opt == 1 || opt == 2 || opt == 3 || opt == 4){
        int result;//存放計算結果
        //跟據運算符進行不同的運算
        if(opt == 1){
            //加
            result = number1+number2;
        }
        if(opt == 2){
            //減
            result = number1-number2;
        }
        if(opt == 3){
            //乘
            result = number1*number2;
        }
        if(opt == 4){
            //除,現在只能整除
            result = number1/number2;
        }
        //輸出結果
        printf("%d+%d = %d\n",number1,number2,result);
    }else{
        printf("運算符必須是1,2,3,4之一才行!走了\n");
    }
    return 0;
}

else表示if條件的運算結果為false時執行的代碼塊。判斷條件中的“||”表示或運算。意思就是如果opt等於1或opt等於2或opt等於3或opt等於4,那麼條件成立。否則就執行else裡的代碼。

 

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