中级守护
一、bool 型变量
(1) 只有两种值“真”(非 0)与“假”(0)
所有非0的数字都表示 true,只有0 表示 false。
(2) 定义与赋值
1 定义(类比其他类型的变量的定义)
bool a;
2 赋值
1) a=1; a=0; //0-1 表示法
2) a=true; a=false; //true-false 表示法。
bool 变量的值只可能为 0 或者 1,非 0 数的 bool 值都为 1
二、关系运算符
(1) 大于(>)、小于(<)
(2) 大于等于(>=)、小于等于(<=)
(3) 等于(==)、不等于(!=)
特别需要注意
等于的表示方法:==是连个等于号(一个等于号表示的是赋值)
另外想要输出一个关系表达式的结果,需要将关系表达式用()括起来
举例:cout<<(2<=3);
三、布尔型和关系运算式
关系运算式会返回一个bool值:1或者0
1(真) 关系表达式成立
0(假) 关系表达式不成立
可以将关系运算式的结果赋值给 bool 类型
四、倍数与整除
整除:a%b 的值是 0,即是整除
倍数:一个整数能够被另一个整数整除,这个整数就是另一整数的倍数。
比如:a%7==0 表示 a 是 7 的倍数,a 可以是 7 14 21 等等 都有可能。
a%7!=0 表示a不是7的倍数,a可以是1 2 3 4 5 6 8 9 10 11 12 13 15…
五、判断奇数和偶数
判断一个数 n 是奇数还是偶数,只要判断 n%2 的值是多少。是 0 就是偶数, 是 1 就是奇数。
n % 2 == 1 表示 n 是奇数
n % 2 == 0 表示 n 是偶数
六、if语句格式
if 语句单分支结构格式
if(条件表达式)
{
语句 1;
}
七、if 语句功能
如果条件表达式的值为真,即条件成立,语句 1 将被执行。
否则,语句 1 将 被忽略(不被执行),程序将按顺序从整个选择结构之后的下一条语句继续执行。
例如:
#include<iostream> using namespace std; int main() { int a; cin>>a; if(a>0) { cout<<"砍树啦!"<<endl; } cout<<"光头强"<<endl; return 0; }
输入的 a 大于 0,比如输入2,我们输出:
砍树啦!
光头强
输入的 a 小于等于 0,比如输入-1,我们输出:
光头强
八、if 后条件表达式的值是 bool 型
if( true )
{
语句 1;
}
if( false )
{
语句 2;
}
语句 1 会执行, 语句 2 不会执行
九、单分支与双分支
单分支: if 单分支选择结构只在条件为 true 时采取操作,条件为 false 时则忽略这个操作。
双分支: if-else 双分支选择结构则可以在条件为 true 时和条件为 false 时采取不同操作。
十、if-else 格式
if(条件表达式) { 语句 1; //条件真时执行 ...... } else { 语句 2; //条件假时执行 ...... }
注意
1、在if else结构中,else对应的条件是if中条件的否定
2、else不能脱离if单独存在
3、if与else中必有一个会执行
变量的自增自减和交换、for循环 课后讲义(火箭v2)
变量的自增自减和交换、for循环
一、自增和自减
1、自增与自减
自增运算符(++)可以将变量的值增加 1
自减运算符(- -)可以将变量的值减少 1
a++; 和 ++a; 都相当于:a=a+1;
a- -; 和 - -a; 都相当于:a=a-1;
2、a++和++a 的区别:
b=a++; 相当于 b=a; a=a+1;
b=++a; 相当于 a=a+1; b=a;
若 a=5
b=a++;//a更**近b,先把a赋值给b再进行a=a+1 所以b 的值为 5
若 a=5
b=++a;//a离++更近,先进行a=a+1再把a赋值给b 所以b 的值为 6
记忆方法:
b=a++ ,b 离 a 更近点,所以 b 的值是 a 的初值;
++a;先对a加1,再使用a的值
a++;先使用a的值,再对a加1
b=++a ,b 离+更近,所以 b 的值是 a++后的值。
二、复合算术赋值
+= 、-= 、*= 、/= 、%=
复合运算符:
a+=b; 即 a=a+b;
a-=b; 即 a=a-b;
a*=b; 即 a=a*b;
a/=b; 即 a=a/b;
a%=b; 即 a=a%b;
三、变量的交换
假设有两个相同类型变量 a,b,交换变量 a 和 b 的值:
实现方法(斜线法则)
1.先定义一个相同类型的临时变量 t,
2.通过斜线法则进行交换:
t=a;
a=b;
b=t;
写成一行:(t=a;a=b;b=t;)t 在首尾,a,b 各自挨在分号两边;
写成三行:t 在首尾,a,b 在斜线
注意:a,b 和 t 必须是同一类型的变量!
在轮转交换中,临时变量 t 在首尾,其他的变量都在斜线上,称为斜线法则。
四、例题选讲
1818饮料交换(两个变量之间的交换)
#include <iostream> using namespace std; int main(){ int a,b,c; cin>>b>>c; a=b; b=c; c=a; cout<<b<<endl<<c; return 0; }
1840 饮料交换(多个变量的交换)
#include<iostream> using namespace std; int main() { int a,b,c,d; cin>>b>>c>>d; a=d; d=c; c=b; b=a; cout<<b<<endl<<c<<endl<<d; return 0; }
认识for循环
一、 什么是循环
我们可以用循环来指挥计算机重复的做一些事情,
循环就是实现重复的做一件事情或者多件事情
二、 for循环语句格式
for ( 从…开始 ; 到…结束 ; 按…方式 )
{
重复要做的事情 ;
}
(从…开始 ; 到…结束 ; 按…方式)----->确定了我们重复执行多少次
{ } 中的内容是我们重复要做的事情
举例:
重复输出10遍Hello, World! 代码如下
重复次数:10次
重复做的事情是:输出 Hello, World!
for循环代码实现:
for(int i=1;i<=10;i++)//从1~10重复10次 { cout<<"Hello, World!";//重复做的事情:换行输出Hello, World! cout<<endl; }
注意:
1、for后面的小括号中的内容之间用;
隔开
2、i<=10的意思:i<10或者i==10两个之间有一个满足就可以了,10<=10以及9<=10都是成立的,11<=10是不成立的
3、i++的意思是:i=i+1 即现在i是1的话,那么执行i++后得到的结果就是i=2;
4、这里是:从1开始;到10结束;每次变化1
5、当i<=10成立的时候重复执行,i<=10不成立的时候结束循环
三、数学知识回顾
奇数:所有不是2的倍数的数都是奇数;比如:1 3 5 7 9
偶数:所有是2的倍数的数字都是偶数;比如:2 4 6 8 10
while、do-while课后讲义(火箭v2)
while 循环
一、while循环语句格式
while(条件表达式) //每次循环开始前**此条件表达式是否成立 { 循环体; } 条件表达式成立时才会执行循环体,否则循环结束。
二、for循环与while循环对比
- for 循环语句:
需要事先知道循环的次数或者是初值和终值 - while 循环语句:
不能确定循环次数时可以使用。
三、课堂练习选讲
注意:
1、在使用while循环时,为防止循环一次都未执行,循环变量需要给初值
2、循环输入,遇零终止类的题型,要注意输入结束标志是否需要参与运算
2426 第几项1
#include<iostream> using namespace std; int main(){ int sum=0,i=0; while(sum<=1000){ i++; sum+=i; } cout<<i; return 0; }
1604 折纸
有一张纸,其厚度为0.1 毫米,将它对折多少次会超过桌面板的厚度n,(10<n<30)这道题
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
double s=0.1;
int cnt=0;
while(s<=n){
s=s*2;
cnt++;
}
cout<<cnt;
return 0;
}
大小写字母转换
下面代码的功能:当输入字符的是小写字母时,输出它的大写字母。
char a='a'; while(a>='a'&&a<='z') { cin>>a; cout<<(char)(a-32)<<endl; }
do-while 循环
一. 语句格式
do
{
语句1;
语句2;
......
}
while (条件表达式); //注意此时while 语句后面有一个分号
do while循环格式注意事项:
1、以do开头
2、在while(条件表达式)后面有个分号
二. do while循环执行过程
- 先执行do 中的循环体
- 判断while 中的条件是否成立
无论while
中的条件是否成立,do while()
循环最少都会执行1 次。
do while循环与while循环对比
三、例题选讲
1041 可怕的零
#include<iostream> using namespace std; int main(){ int sum1=0,cnt1=0,sum2=0,cnt2=0,a; do{ cin>>a; if(a>0){ cnt1++; sum1+=a; } if(a<0){ cnt2++; sum2+=a; } }while(a!=0); cout<<cnt1<<endl<<cnt2<<endl; cout<<sum1<<endl<<sum2; return 0; }
资深光能
中级天翼