一:选择语句

1. if语句:

一般语法如下:

if (test-condition) { statement(s); }

如果test-condition结果为真,执行statement(s),否则跳过statement(s)。

2. if...else语句

一般语法如下:

if (test-condition) { statement(s)1; } else { statement(s)2; }

如果test-condition结果为真,则执行statement(s)1,否则执行statement(s)2。

3. if...else if...else语句

一般语法如下:

if (test-condition1) { statement(s)1; } else if (test-condition2) { statement(s)2; } ... else if (test-conditionN) { statement(s)N; } else { statement(s); }

实际上,这种结构表示的含义是:一个if else语句被嵌套在另外一个if else中。但相比于层层嵌套,该结构语句的格式更清晰,可读性更高。

4. switch语句

一般语法如下:

switch (integer-expression) { case label1: { statement(s); } break; case label2: { statement(s); } break; ... case labelN: { statement(s); } break; default: { statement(s); } break; }

switch语句中的integer-expression结果必须为整型,通过判断integer-expression的值来跳到对应的case分支,执行该分支下的statement(s)。

switch语句也可改写为if...else if...else语句,两者相比:

Ⅰ. switch语句只能测试整型条件,而if...else if...else语句可以处理其他类型测试。

Ⅱ. 如果两种语句都可用且选项超过两个,switch语句的效率更高。

5. ?:运算符

条件运算符(?:)可以用来代替if else语句,它是C 中唯一需要3个操作数的运算符。该运算符的通用格式如下:

expression1 ? expression2 : expression3

如果expression1结果为真,则整个表达式的值为expression2的值,否则表达式的结果为expression3的值。

二:逻辑表达式

需要测试多个条件时,可以用逻辑运算符来将多个表达式组成逻辑表达式。这些运算符有:逻辑或(||)、逻辑与(&&)和逻辑非(!)。

多个条件进行逻辑或运算时,只要一个条件结果为真,则整个逻辑表达式的结果为真。

多个条件进行逻辑与运算时,只要一个条件结果为假,则整个逻辑表达式的结果为假。

逻辑非运算时,对原表达式结果取反。

逻辑与和逻辑或运算符优先级低于关系运算符和算术运算符,且逻辑与运算符优先级高于逻辑或;而逻辑非的运算符优先级高于关系运算符和算术运算符。

三:补充

break语句:用于循环语句和switch语句中,使程序结束循环或结束switch语句。

continue语句:用于循环语句中,让程序跳过循环体中余下的代码,并开始新一轮循环。

字符函数库:从C语言继承的用来判断字符的函数软件包。常用的字符函数有:

isalnum():如果参数是字母或数字,该函数返回true。

isalpha():如果参数是字母,该函数返回true。

isdigit():如果参数是数字(0~9),该函数返回true。

islower():如果参数是小写字母,该函数返回true。

isupper():如果参数是大写字母,该函数返回true。

ispunct():如果参数是标点符号,该函数返回true。

tolower():如果参数是大写字母,该函数返回其小写,否则返回该参数。

toupper():如果参数是小写字母,该函数返回其大写,否则返回该参数。

四:实战演示

题目:编写一个程序,读取键盘输入,直到遇到@字符为止,并回显输入(数字除外),同时改变输入字符的大小写。

代码如下:

#include <iostream> #include <vector> using namespace std; int main() { std::vector<char> chVec; char ch; cin.get(ch); while (ch != '@') { if (isdigit(ch)) { cin.get(ch); continue; } if (islower(ch)) { ch = toupper(ch); } else if (isupper(ch)) { ch = tolower(ch); } chVec.push_back(ch); cin.get(ch); } for (int size = chVec.size() - 1; size >= 0; --size) { cout << chVec.at(size); } cout << endl; system("pause"); return 0; }

测试结果如下图所示:

怎么写逻辑表达式(选择语句与逻辑表达式)(1)

图1 测试结果

,