【C++基础教程】第五课
2021/7/19 9:05:06
本文主要是介绍【C++基础教程】第五课,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
上次的作业答案,非常简单。
第一题:
我们需要知道,字符(char类型)在计算机中存储的时候,是把这个字符对应的代码(专业术语叫做编码)进行存储。例如,换行符'\n'的代码就是10,'0'对应的代码就是48.
c>='0'&&c<='9'表示它的存储代码介于'0'和'9'之间,其中的字符有:
'0' '1' '2' '3' ...'9',所有的数字字符都在里面,因此,输入的是4,它的代码介于两者之间,应该输出4 is a number.
第二题:
#include<iostream> using namespace std; int main(){ int a,b; char c; cin>>a>>c>>b; if(c=='+')cout<<a+b; if(c=='-')cout<<a-b; if(c=='*')cout<<a*b; if(c=='/'){ if(b==0)cout<<"error";//除数为0错误 else cout<<a/b; } }
根据c的值进行分类计算,注意除数为0的情况(直接除0程序会崩溃)。
注:if语句如果大括号内只有一个语句,括号可以省略
今天我们继续讲解if语句。
if语句的括号中,扩起来的是一个条件表达式。例如,if(a>0)中,a>0就是一个条件表达式。条件表达式的值只有真和假。
尝试阅读程序写结果:
#include<iostream> using namespace std; int main(){ if(-1)cout<<"true"; else cout<<"false"; }
输出:true
if语句判断条件表达式时,只要结果不为0,都看做是真。
如果有多个表达式都要满足,我们可以使用逻辑运算符。
例如,判断一个数是否为数字,我们可以使用if(c>='0'&&c<='9'),&&表示前后两个条件都要满足。
#include<iostream> using namespace std; int main(){ if(1&&0)cout<<"true"; else cout<<"false"; }
输出:false
只有所有条件均满足(值为1),结果才为1,否则结果为0.
其实&&运算结果类似于乘法运算“*”,只要有一个乘数为0,结果就是0.
如果多个表达式任意一个满足,可以使用||,表示“或”。
#include<iostream> using namespace std; int main(){ if(1||0)cout<<"true"; else cout<<"false"; }
输出:true
1和0中,有一个成立,所以结果是成立的,输出true。
同理,或运算也可以看成是加法运算,有一个是1,结果就是1.(如果加法运算算出2或者3这类数值,也是“真”,看做是1)
同时,C++也含有一个运算符“非”,表示将后面的条件取反,1变成0,0变成1.
常见例子:
if(a==0)这个表达式可以写成if(!a),可以自己思考一下为什么。
课后作业:
阅读程序写结果。
#include <iostream> using namespace std; int main() { int a = 5; int b = 20; int c ; if ( a && b ) { cout << "Line 1 - 条件为真"<< endl ; } if ( a || b ) { cout << "Line 2 - 条件为真"<< endl ; } /* 改变 a 和 b 的值 */ a = 0; b = 10; if ( a && b ) { cout << "Line 3 - 条件为真"<< endl ; } else { cout << "Line 4 - 条件不为真"<< endl ; } if ( !(a && b) ) { cout << "Line 5 - 条件为真"<< endl ; } return 0; } //来源https://www.runoob.com/cplusplus/cpp-operators.html
这篇关于【C++基础教程】第五课的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15在使用平台私钥进行解密时提示 "私钥解密失败" 错误信息是什么原因?-icode9专业技术文章分享
- 2024-11-15Layui框架有哪些方式引入?-icode9专业技术文章分享
- 2024-11-15Layui框架中有哪些减少对全局环境的污染方法?-icode9专业技术文章分享
- 2024-11-15laydate怎么关闭自动的日期格式校验功能?-icode9专业技术文章分享
- 2024-11-15laydate怎么取消初始日期校验?-icode9专业技术文章分享
- 2024-11-15SendGrid 的邮件发送时,怎么设置回复邮箱?-icode9专业技术文章分享
- 2024-11-15使用 SendGrid API 发送邮件后获取到唯一的请求 ID?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 tags标签最多有多少个?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 怎么批量发送给多个人?-icode9专业技术文章分享
- 2024-11-15如何搭建web开发环境并实现 web项目在浏览器中访问?-icode9专业技术文章分享