首页 > 编程 > C++ > 正文

C++ primer 第一章的两个 if 语句例题

2019-11-08 02:54:54
字体:
来源:转载
供稿:网友

与大多数语言一样,C++也提供了 if 语句 来支持条件执行。我们可以用 if 语句写一个程序,来统计在输入中每个值连续出现了多少次:

#include <iostream>int main(){	//currVal 是我们正在统计的数;我们将读入的新值存入val	int val = 0, curral = 0;	//读取第一个数,并确保确实有数据可以处理	if (std::cin >> curral){		int cnt = 1;				//保存我们正在处理的当前值的个数		while(std::cin>>val){       //读取剩余的数			if (val == curral)      //如果值相同					++cnt;			//将cnt加一			else {                  //否则打印前一个值的个数					std::cout<< curral << " occurs " << cnt << " times "<< std::endl;					curral = val;	//记住新值					cnt = 1;		//重置计数器			   	}		}//while 循环在这里结束		//记住打印文件中最后一个值的个数			std::cout<< curral<<" occurs "<< cnt <<" times "<<std::endl;		}//最外层的if语句在这里结束		return 0;}

如果我们输入如下内容:

42 42 42 42 42 55 55 62 100 100 100

则输出应该是:

42 occurs 5 times

55 occurs 2 times

62 occurs 1 times

100 occurs 3 times

程序以两个变量 val 和 currVal 的定义开始: currVal 记录我们正在统计出现次数的那个数;val 则保存从输入读取的每个数。与之前的程序相比,新的内容就是两个 if 语句。第一条 if 语句保证输入不为空。

if (std::cin >> currVal){			//...}//最外层的if语句在这里结束

与 while 语句类似, if 也对一个条件进行求值。第一条 if语句的条件是读取一个数值存入 currVal 中。如果读取成功,则条件为真,我们继续执行条件之后的语句块。该语句块以左花括号开始,以return语句之前的右花括号结束。

如果需要统计出现次数的值,我们就定义cnt,用来统计每个数值连续出现的次数。与上一小节的程序类似,我们用一个while 循环反复从标准输入读取整数。

while 的循环体是一个语句块,它包含了第二条if语句:

	if (val == curral)    		  //如果值相同		++cnt;			 //将cnt加一	else {                 		 //否则打印前一个值的个数		std::cout<< curral << " occurs " << cnt << " times "<< std::endl;		curral = val;		//记住新值		cnt = 1;		//重置计数器

这条 if 语句中的条件使用了 相等运算符(==)来检测 val 是否等于currVal 。如果是,我们执行紧跟在条件之后的语句。这条语句将 cnt 增加一,表明我们再次看到了currVal 。

如果条件为假, 即 val 不等于currVal , 则执行else 之后的语句。这条语句是一个由一条输出语句和两条赋值语句组成的语句块。输出语句打印我们刚刚统计完得值的出现次数。赋值语句将cnt 重置为1,将 currVal 重置为刚刚读入的 val 。

warning:C++用=进行赋值,用==作为相等运算符。两个运算符都可以出现在条件中。一个常见的错误是想在条件中使用 ==(相等判断),却误用了=。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选