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