之前的學習,真的讓我收穫很多,這兩天要一股腦的寫出來,還真是有點碩果頗豐的感覺。
今天的這篇博文主要講述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之間相差很大的話,所得的結果顯示出來是很混亂的,怎樣才能讓顯示結果能夠更人性化,更美觀呢?這個我現在還沒有弄懂,有待解決哈···