第六章 分支语句和逻辑运算符

if语句


if语句用来判断是否执行某个操作,具体有三种用法

最简单的:

if (test-condition)

statement

也可以让程序决定执行两条语句或语句块的哪一条

if (test-condition)

statement 1

else

statement 2

如果由两个以上的选择的话

if (test-condition 1)

statement 1

else if (test-condition 2)

statement 2

else

statement 3


注意如果statement是语句块的话一定要用花括号{ }括起来


test-condition可以是很简单的测试某个值是否大于某个值,比如if (a<b), 也可以来测试两个或两个以上关系表达式,这个时候就需要逻辑运算符

C++提供了3种逻辑运算符:

逻辑OR(||) - 两个条件有一个或全部满足某个要求,就返回真;

逻辑AND(&&) - 两个条件必须全部满足某个要求才能返回真,否则就是假;

逻辑NOT(!) - 将它后面的表达式的真值取反


需要注意的是运算符的优先级,逻辑OR和逻辑AND运算符的优先级都低于关系运算符,比如

x > 5 && x <10; 等于 (x>5) && (x<10)

但是!运算符的优先级高于所有的关系运算符和算术运算符,因此对表达式求反,必须得把表达式括起来,比如!(x>5),不能写出!x>5


c++有一个常被用来代替if else语句的运算符,叫做条件运算符 (?:):

expression1 ? expression2 : expression3

实例int x = a >b ? a:b;

该语句也可以写成这样

int x;

if (a>b)

x = a;

else

x = b;


有的时候测试条件很多,比如一个菜单要求用户从5歌选项中选择一个,然后根据用户不同选择执行不同语句,用if else if就比较麻烦,这时候可以使用c++提供的switch语句

switch (integer-expression)

{

case label1: statement1

case lable2: statement2

...

default: statement_default

}

顾名思义,integer-expression必须是一个结果为整数值的表达式;另外default是可选的,不一定非要提供。

另外需要特别注意的是,如果不是default对应的statement,必须以break结束来终端switch程序块。具体参见书中的程序清单6.10,这里就不拷贝了。


switch语句经常用枚举量来作为标签,例如程序清单6.11

enum color {red, orange, yellow,green};

color c;

cin >> c;

switch (c)

{

case red : cout << "red"; break;

case orange : cout << "orange"; break;

case yellow : cout << "yellow"; break;

case green : cout << "green"; break;

}


上面提到了break,break 和continue语句都能够使程序跳过部分代码。continue语句用于循环中让程序跳过循环体中余下的代码,并开始新一轮循环。举个例子一看就明白了

char line[100];

cin.get(line, 100);

for (int i=0; line[i]!='\0';i++)

{

cout << line[i];

if (line[i] == '.')

break; //如果字符是.的话就结束循环

if (line[i] == ' ')

continue;//如果遇到空格的话就开始新一轮循环

}


6.7 介绍数字的输入,6.8是简单的文件输入和输出,这里就不写了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值