您的位置:首页 > 编程语言 > C语言/C++

【C++】If语句

2014-05-26 13:39 417 查看
之前的学习,真的让我收获很多,这两天要一股脑的写出来,还真是有点硕果颇丰的感觉。
       今天的这篇博文主要讲述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之间相差很大的话,所得的结果显示出来是很混乱的,怎样才能让显示结果能够更人性化,更美观呢?这个我现在还没有弄懂,有待解决哈···

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息