【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++基础教程】第五课的更多相关文章
- Adafruit的树莓派教程第五课:使用控制电缆
Adafruit的树莓派教程第五课:使用控制电缆 时间 2014-05-09 01:11:20 极客范 原文 http://www.geekfan.net/9095/ 主题 Raspberry PiM ...
- python基础教程项目五之虚拟茶话会
python基础教程项目五之虚拟茶话会 几乎在学习.使用任何一种编程语言的时候,关于socket的练习从来都不会少,尤其是会写一些局域网的通信的东西.所以书上的这个项目刚好可以练习一下socket编程 ...
- Objective-C 基础教程第五章,复合
目录 Objective-C 基础教程第五章,复合 什么是复合? Car程序 自定义NSLog() 存取方法get Set Tires(轮胎) 存取方法 Car类代码的其他变化 扩展Car程序 复合还 ...
- Android OpenGL教程-第五课【转】
第五课 3D空间: 我们使用多边形和四边形创建3D物体,在这一课里,我们把三角形变为立体的金子塔形状,把四边形变为立方体. 先看看三角形的顶点变成啥了 private float[] mTriangl ...
- NeHe OpenGL教程 第五课:3D空间
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Zookeeper基础教程(五):C#实现Zookeeper分布式锁
分布式锁 互联网初期,我们系统一般都是单点部署,也就是在一台服务器完成系统的部署,后期随着用户量的增加,服务器的压力也越来越大,响应速度越来越慢,甚至出现服务器崩溃的情况. 为解决服务器压力太大,响应 ...
- 【C++基础教程】第二课
一,上次的课后练习答案 1,输出1+2=3 2,输出2 2.25 2.25 2.25 3,第一空iostream或bits/stdc++.h 第二空main(),main(void)或main(int ...
- 【C++基础教程】第一课
一,C++基础 1.1.什么是C++ C++是一种面向对象的编程语言,如今被广泛应用于各种行业. 1.2.C++的语法特点 一般C++的程序长成这个样子: #include<...> // ...
- [原]OpenGL基础教程(五)缓冲区数据更新方式
1.glBufferSubData 适用于相同数据类型 void SetPositionY(float y){ vector<Vector3<float>>::itera ...
- python基础教程(五)
字符串基本操作 所有标准的序列操作(索引.分片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用,前面已经讲述的这些操作.但是,请注意字符串都是不可变的. 字符串的方法: 字符串从str ...
随机推荐
- 1002 A+B for Polynomials (25分) 格式错误
算法笔记上能踩的坑都踩了. #include<iostream> using namespace std; float a[1001];//至少1000个位置 int main(){ in ...
- 【笔记】KNN之分类准确度
分类准确度 分类准确度 以sklearn中的手写数字datasets.load_digits为例,其是8*8的图形,具有64个特征值,类别由0到9 我们挑选出666这个图形,将其可视化 X = dig ...
- SQL injection : UNION attacks
当应用程序易受SQL注入攻击并且查询结果在应用程序的响应中返回时,可以使用UNION关键字从数据库中的其他表检索数据.这将导致SQL注入联合攻击. UNION关键字允许您执行一个或多个附加的SELEC ...
- Java入门姿势【面向对象3】构造方法及其重载_方法的调用
上次我为大家写出啦"定义类与创建对象_了解局部变量",上篇文章代码可能较多,如没有了解透彻的话请打开下方文章在进行观看一下哦!! [Java入门姿势[面向对象2]定义类与创建对象_ ...
- idea中Jrebe热部署l的安装和激活
安装上这个插件,就不需要再改代码后重复启动服务了,还是很方便的!!! 一.在Idea中,打开File-------->Settings-------->Plugins里面的MarketPl ...
- ASP.NET Core教程:ASP.NET Core程序部署到Linux
一.前言 这篇文章我们将讲解如何将ASP.NET Core 程序部署到Linux.这里我们使用的是虚拟机里面安装的Centos7.这里的ASP.NET Core程序,以上篇文章中发布的框架依赖文件为例 ...
- linux————mysql————修改密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('输入新密码');
- mysql基础操作(四):简单多表查询
-- 创建部门 (主表) create table dept( id int primary key auto_increment, name varchar(20) ); -- 创建员工 (副表) ...
- 使用dom4j工具:XMLWriter写出文件(五)
package dom4j_write; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStre ...
- springboot全局异常封装案例
@ControllerAdvice三个场景:>https://www.cnblogs.com/lenve/p/10748453.html 全局异常处理 全局数据绑定 全局数据预处理 首先定义一个 ...