每日复习笔记4.24

C++复习笔记

c++ primer笔记

语句

if语句

最简单的if语句

if(condition)
	statement;

其中condition部分必须用括号括起来。它可以是一个表达式,也可以是一个初始化声明。而statement部分可以是复合语句,即用花括号括起来的块语句。

  1. else语句
    用法:
if(condition)
	statement1;
else
	statement2;

这里需要注意的是,每一个else都需要有且只有一个if语句想匹配。
这里就可能会出现悬垂else的情况。

if(condition1)
	statement1;
	if(condition2)
		statement2;
  else
  	  statement3;

这种情况下,else子句既可以和第一个if匹配,也可是第二个if匹配;说明所有的if-else语句都有可能存在二义性的问题。这种就是悬垂else问题。
一般来说我们可以通过代码的缩进格式来表示else语句和哪一个if语句相匹配,不过严格来讲,这种二义性,是通过将else子句匹配给else出现之前最后出现的if子句来解决。

switch语句
  1. 使用switch
//统计输出的字符中元音字母的个数分别是
char ch;
int a_count = 0;
int e_count = 0;
int i_count = 0;
int o_count = 0;
int u_count = 0;
while(cin >> ch){
	switch(ch){
		case 'a':
			++a_count;
			break;
		case 'e':
			++e_count;
			break;
		case 'i':
			++i_count;
			break;
		case 'o':
			++o_count;
			break;
		case 'u':
			++u_count;
			break;
	}
}

通过对圆括号内表达式的值与其后列出的关键字做比较,执行相应的case子句。这里case与它相关联的值成为case标号,case标号的值必须是常量表达式
这里需要特别注意的是:如果表达式与其中一个case标号的值相匹配,则程序将从该标号后面的第一个语句开始依次执行各个语句,知道switch结束或者遇到了break语句为止。如果匹配失败了,则跳过整个switch语句,直接从switch语句之后的第一个语句开始执行

	switch(ch){
		case 'a':
			++a_count;
		case 'e':
			++e_count;
		case 'i':
			++i_count;
		case 'o':
			++o_count;
		case 'u':
			++u_count;

这是上面的程序每个case都去掉了break之后的代码,假设输入的ch是‘e’,则在匹配了case ‘e’的情况之后,后面的case也都会被执行,直到switch语句结束。

  1. default子句
    如果所有的case都没有匹配上,而且存在default子句,则执行default子句中的程序。
switch(ch){
		case 'a':
			++a_count;
			break;
		case 'e':
			++e_count;
			break;
		case 'i':
			++i_count;
			break;
		case 'o':
			++o_count;
			break;
		case 'u':
			++u_count;
			break;
		default:
			++other_count;
			break;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值