【C++】If語句

之前的學習,真的讓我收穫很多,這兩天要一股腦的寫出來,還真是有點碩果頗豐的感覺。

       今天的這篇博文主要講述if語句的一些入門知識。老規矩,由問題來引入。

       1.顯示兩個數字中較大的

#include <iostream>
int main()
{
    std::cout<< "Please input two numbers."<< std::endl;
    int a, b;
    std::cin>> a>> b;
    <span style="color:#3366ff;">if (a>=b){ std::cout<< "The larger number of the two numbers is "<< a<< std::endl;}
    else { std::cout<< "The larger number of the two numbers is "<< b<< std::endl;}
</span>    return 0;
}

       我highlight了if語句的主體,顯然,if語句是一個條件語句,一般來說由if和else兩部分構成,兩者是平等關係,也就是說是同步執行的,只是需要按照不同的條件來劃分執行結果。有了if語句的判斷,我們就可以很方便的解決很多的問題。

————————————————————————————————————————————————

       2.計算出所給數字中負數的個數

       對於既定總個數的數字,如果總的個數並不多的情況下,我們甚至可以對於每一個輸入來寫if語句,但是這裏我給出的是計算隨機輸入的數字中負數的個數。這裏需要用到前面提到的即時讀取的功能,並做一些小的修改。

#include <iostream>
int main() 
{
    std::cout<< "Please input some numbers."<< std::endl;
    int a, i=0;
    while (std::cin>> a) //there is no semicolon at the end of while statement, so next sentence will be in one statement with this.
    if (a<0){++i;} // can get each value of "a" when user entered.
    if (i>=2){std::cout<< "There are "<< i<< " negative numbers."<< std::endl;}
    else {std::cout<< "There is "<< i<< " negative number."<< std::endl;}
    return 0;
}

        可以看到,我們在這裏運用了兩個if語句,一個是判斷a是不是小於0,另一個是判斷負數的個數是不是大於等於2。If語句的應用應該還是很簡單的,主要是要找好判定標準。

————————————————————————————————————————————————

        下面我們再看看if語句在其他方面的應用。

        3.計算v1到v2之間整數的累加之和

        可見,v1和v2都是不可知的,也不知道誰大誰小,所以我們可以假設兩個值l(low)和h(high)分被代表較小和較大的兩個數字。那麼,不管什麼情況,l<=h。也就是說,我們就可以通過if來判定,把v1和v2的值按照不同的情況賦給l和h。如下:

#include <iostream>
int main()
{
    std::cout<< "Please enter two numbers."<< std::endl;
    int v1, v2;
    std::cin>> v1>> v2;
    int l, h;
    if (v1<=v2){l=v1; h=v2;}
    else       {l=v2; h=v1;}
    int sum=0;
    for (int a=l; a<=h; ++a) sum+=a;
    std::cout<< "Sum of "<< l<< " to "<< h<< " is "<< sum<< " ."<< std::endl;
    return 0;
}

        4.打印出a到b之間的整數

        同上,這裏並不知道是從a到b,還是從b到a。所以還是要用一個if語句來判斷。

#include <iostream>
int main()
{
    std::cout<< "Please enter two numbers and with a '.' for end."<< std::endl;
    int a, b;
    while (std::cin>> a>> b); //prompt user to enter 2 random numbers.
    int l, h;
    if (a<=b){l=a;h=b;}
    else {h=a;l=b;} // l<=h
    while(l<h-1){++l; std::cout<< l<< " ";} //print "l" each time when it plus 1, untill l=h-1.
    return 0;
}

       這樣就可以很輕鬆的得到兩個數之間的整數。

       但是有個問題出現了,如果a跟b之間相差很大的話,所得的結果顯示出來是很混亂的,怎樣才能讓顯示結果能夠更人性化,更美觀呢?這個我現在還沒有弄懂,有待解決哈···



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章