怎么写逻辑表达式(选择语句与逻辑表达式)
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 测试结果
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com