【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

 

posted @ 2021-07-19 08:53  计算机知识杂谈  阅读(93)  评论(0编辑  收藏  举报