//还是传统的%一下DHX
P1:何为表达式
基础定义
表达式是由操作数和操作符组合而成的语法结构
操作数
操作数是表达式的基本组成部分,它们是表达式中的数据元素,操作数可以是常量、变量、函数调用的返回值,或者也可以是一个表达式
例如:
114514 //一个数
x //一个变量
sqrt(n) //一个带有返回值的函数
操作符
操作符就是阐述了相关的几个操作数关系的运算符,常见的运算符包括算术运算符,比较运算符,逻辑运算符等
算术运算符
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法() |
% | 取余(e.g. 8%3=2) |
++ | 令单个变量+1 |
-- | 令单个变量-1 |
逻辑运算符
&& | 逻辑与(and) |
|| | 逻辑或(or) |
! | 逻辑非(not) |
比较运算符(当符合比较条件时返回1,反之则0)
== | 等于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
表达式的结果(返回值)
将表达式的操作数与操作符进行运算后得到的结果
int x=5;
x++;//x=6
x=x*2+77;//x=89
x=x==1;//x=0
P2:分支结构语句
if语句
一个基本的if语句结构如下
if(执行条件){
执行的代码;
}
当执行条件得到一个非0值时,执行大括号内的代码,否则不执行,以下是一个例子
if(game==sanguosha){
cout<<"记得打差评";
}
if-else语句
else语句与if的结构基本相同,但是不需要任何条件,当if语句的条件被满足时,执行if里的代码,当不满足时,执行else里的代码,以下是一个例子
if(duide==1){
djw=cb;
}
else{
cb=djw;
}
else if语句
结构如下
if(条件1){
代码1;
}
else if(条件2){
代码2;
}
else{
代码3;
}
/*等效于
if(条件1){
代码1;
}
else{
if(条件2){
代码2;
}
else{
代码3;
}
}
*/
else if语句是else和if的结合,如上图所示,当条件1被满足时,执行代码1,当条件1不被满足且条件2被满足时,执行代码2,其余情况下,执行代码3
swich语句(进阶)
标准的swich语句格式
switch(选择标准){
case 条件1:
代码1;
case 条件2:
代码2;
default:
代码3;
}//case数量没有上限
swich语句会根据选择标准的值(必须是整数)跳到对应的位置开始执行程序,并一路执行swich语句余下的内容,特别的,当没有符合的条件时,跳转至default执行代码,例子如下
int i=2;
switch (i){
case 1:
cout<<"Man!";
case 2:
cout<<"What can I say?";
default:
cout<<"Mamba out.";
}
//输出内容:What can I say?Mamba out.
条件运算符(进阶)
条件运算符的形式如下
a?b:c
其中a,b,c均为表达式,当a表达式的结果不为零时,该式子以b作为返回值(结果),反之则为c
等效于
if(a){
ans=b;
}
else{
ans=c;
}//其中ans为返回值
P3:循环语句
当我们需要执行一段代码很多次时,甚至是不知道多少次时,我们可以使用循环语句来实现同一段代码的多次使用
while循环
while循环分为两种,while循环和do while循环,二者结构如下
while(循环条件){
循环的代码;
}
//和
do{
循环的代码;
}while(循环条件)
他们都会在循环条件满足时不断执行循环的代码,二者唯一的区别是while在循环前判断是否满足条件,而do while是在循环后判断
☝强调一下当while内部代码不会改变循环条件时,循环会一直持续,即发生死循环
一个使用while循环的例子
while(x>1){
if(x%2){
x=3*x+1;
}
else{
x=x/2;
}
}
/*
以上代码验证了3x+1猜想
即对于一个奇数,我们将其乘3再+1
对于偶数,我们将其除以2
不断进行该操作,会使得任意一个数最终变成1
*/
for循环
以下是一个for循环的基本结构
for(循环初始化;循环条件;循环后的更新操作){
循环的代码;
}
循环初始化是在for循环开始前执行的代码,循环条件作用同while循环,循环后的更新操作是在每次执行完循环的代码后执行的操作,一般用于更新循环条件
一个例子
int ans=1;
for(int i=1;i<=10;i++){
ans=ans*i;
}
printf("%d",ans);
//以上代码计算了10!,即10的阶乘
☝循环初始化,循环条件,循环后的更新操作均可以不填入任何东西,在不填入初始化的情况下,循环前不进行操作,在循环条件为空的情况下,直到循环被其它代码结束前,循环将持续进行(等效于直接填1),循环后的更新操作为空则使得for循环等效于while循环
同样的,for,while,do while三种循环也可以通过一定的操作来等效替代其它两种循环
P4:作业
实际上是让你们拿代码自己试试分支结构语句,摸了
让你们自己试试写if和else,摸了
不难,提示是使用如下代码结构
if(是9的倍数){
输出是9的倍数
}
else if(是4的倍数){
输出是4的倍数
}
else if(是3的倍数){
输出是3的倍数
}
else{
输出oops
}
当然,也可以使用进阶知识swich,甚至条件运算符完成判断,甚至可以做到只用一行判断完成
用于了解循环结构运作原理及顺序,摸了
实际上相当于将作业3的代码化为一个函数,在主程序中加入一个939到945的循环,依次调用函数来完成任务,思路如下
int 判断是否为3,4,9倍数的函数(int i){
里面基本是作业3的内容
}
int main(){
for(这里想办法让循环从939跑到945){
判断函数(i);
输出结果;
}
return 0;
}
阿巴巴巴,2300多字,要死了