c++知识点合集已经完成欢迎前往主页查看,点点赞点点关注不迷路哦
点我进入c++第一章知识点合集
MYSQL知识点持续更新中
MYSQL第一章节DDL数据定义语言的操作----点我进入
MYSQL第二章节DDL-数据库操作语言 DQL-数据查询语言----点我进入
MYSQL-第三章节DCL-管理用户,控制权限----点我进入
MYSQL-第四章节常用函数说明----点我进入
目录
第三章知识点合集
一.逻辑运算符 (见第一章知识点合集)点我进入
二.逻辑表达式
条件表达式
单分支if语句
双分支if 语句
多分支if语句
If的嵌套使用(进行多条件判断)
switch 实现分支结构(实现多条件判断)
break的作用:
循环结构
循环三要素
while循环
do…while循环
三.for循环
循环中断
Break的作用:
continue语句
循环嵌套
逻辑表达式:用逻辑运算符将两个表达式连接起来的式子。
格式:表达式1 逻辑运算符 表达式2 或者 逻辑运算符 表达式1
逻辑表达式的结果是一个逻辑值"真"或"假",即为"1"或"0"
注意
在逻辑表达式中可以用赋值运算符,如"a&&(b=0)",但不能写成"a&&b=0"的形式,若写成,该表达式则相当于(a&&b)=0,程序报错。
int a=3,c=5;
bool d = a<1&&c=c+1; 相当于 bool d = (a<1&&c)=c+1;
对于逻辑与 (&&)运算,若”&&“左边的表达式的值为假,则可以得出整个表达式的值为假,那么"&&"右边的就不需要计算;只有当左边表达式为真时,才需要计算右边表达式的值。
例子:
int a = 2,c=3;
输出结果:
0
2
3
对于逻辑或(||)运算,若”||“左边的表达式的值为真,则可以得出整个表达式的值为真,那么"||"右边的就不需要计算;只有当左边表达式为假时,才需要计算右边表达式的值。
例子:
int a =3,c=5;
cout<1||(c=c+1)<
cout<
输出结果:
1
5
条件表达式:由条件运算符将3个表达式连接起来的式子。
格式:
表达式1?表达式2:表达式3
分析:
条件表达式的执行流程为先计算表达式1的值,若值为非0,表示条件为真,则将表达式2的值作为整个条件表达式的值,否则将表达式3的值作为整个条件表达式的值
例子:
int a=1,b=3;
max=a>b?a:b; cout<
If(表达式)
{
语句1;
}
注意:
如果表达式成立,则执行语句一
例子:
int main()
{ float x = 1.0;
scanf("%f", &x);
if (x < 0)
{ x = -x; }
printf("%.2f", x); //保留两位小数(.2f)
return 0; }
If(表达式)
{
语句1;
}
else
{
语句2;
}
注意:
当表达式成立的话则执行语句1,不执行语句2,当表达式不成立的话则执行语句2,不执行语句1;
例子
int main()
{
int a = 0;
int b = 0;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
if (a > b)
printf("两个整数中的最大值为:%d\n", a);
else
printf("两个整数中的最大值为:%d\n", b);
return 0; }
If(表达式1)
{
语句1;
}
else if(表达式2)
{
语句2;
}
else if(表达式3)
{
语句3;
}
else
{
语句4;
}
注意:
当表达式1成立的话则执行语句1并且其他表达式不在进行判断且不输出其他语句;当表达式1不成立则进行表达式2的判断当表达式2成立的话则只输出语句2且其他表达式不再输出;剩下一个else if 同理;当表达式1,2,3都不成立,则输出else下面的语句4。
例子
#include
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("少年\n");
}
else if (age >= 18 && age < 30)
{
printf("青年\n");
}
else if (age >= 30 && age < 50)
{
printf("中年\n");
}
else if (age >= 50 && age < 80)
{
printf("老年\n");
}
else
{
printf("老寿星\n");
}
return 0;
}
A:
If(表达式1)
;
If(表达式2)
{
语句1;
}
B:
If(表达式3)
If(表达式4)
{
语句2;
}
A:当表达式1成立时则执行空语句;
B:当表达式3,4都成立时则执行语句二。
B也相当于:
If(表达式3)
{
If(表达式4)
{
语句2;
}
}
注意:第一个括号与最后一个括号相配对
A:
switch(表达式)
{
case 常量1 : 语句1;
case 常量2 : 语句2;
⋮ ⋮ ⋮
case 常量n : 语句n;
default : 语句n+1;
}
switch 实现分支结构:
当表达式的值与对应的常量值想等的话则执行对应常量后面的语句并且重该语句开始执行完后面的全部语句,当没有对应的常量与其想等的话则执行default后面的语句
B
switch(表达式)
{
case 常量1 : 语句1; break;
case 常量2 : 语句2; break;
⋮ ⋮ ⋮
case 常量n : 语句n; break;
default : 语句n+1; break;
}
注意:
当每条语句后面都加上break的时候,则执行完对应语句以后不会接着往下执行其他语句
跳出switch多分支结构或者跳出循环结构当遇到双层或者多层循环结构的话且break出现在内层循环结构则跳出对应的内层循环而不是跳出全部的循环结构!!!
例子:
int q=0;
for(i=0;i<3;i++)
for(int j = 0;j<3;j++)
{
q+=i;
break;
}
cout<
输出结果为:
0
1.循环初始操作
2.循环条件
3.循环体
对于任何循环通常后两个要素中至少有一条语句使循环条件趋向假,使得循环能够结束。同时,循环结构就是在给定的循环条件成立的情况下,重复执行一个程序段;而当循环条件不成立时,则退出循环。
语法结构:
while(表达式)
{
循环体语句
}
总结:
计算表达式的值,其值如果为非0(真),则执行循环体,每执行一次,就计算一次表达式的值,直到表达式的值为0(假)时结束循环,转去执行while的后续语句。while属于当型循环。
例题: 计算1加到100的总和
#include
int main(void){
int i,sum;
sum=0;i=1;
while(i<=100){
sum+=i;
i++;
}
printf("sum=%d\n",sum);
return 0;}
注意
1、先判断表达式,后执行循环体,循环体有可能一次也不执行。
2、while(表达式)括号后面一般不要加“;”,如果加上,则认为循环体是空语句。
3、while后小括号的表达式可以是任意表达式,一般情况下是关系表达式、逻辑表达式或整数表达式,在计算时如果是非零,则其值被认为是真,否则认为是假。
do…while语句是无论如何都要执行一次循环体语句,然后再看循环条件是否成立,决定后续的执行路径。
do
{
循环体结构
}
while(表达式);
功能
当流程到达do后,先执行一次循环体,然后再计算表达式的值。若值为真,则再执行循环体;否则退出循环而执行do…while后续语句。do…while属于变形的当型循环。与while结构相比,do…while结构至少要执行一次循环体。这样的结构应用在事先知道循环体至少执行一次的程序中。
例子 计算一个不足10位数证书的位数。
#include
int main(void){
int m,n;
scanf("%d",&m);
int t=m;
n=0;
do
{
m/=10;
n++;
}while(m!=0);
printf("%d的位数为%d\n",t,n);
return 0;
}
题目分析:
因为对于一个整数,位数至少是1.所以循环语句m=/10;n++;至少执行一次。
在循环问题中,当循环次数已知时,通常用for语句实现较为简洁、直观。
语法格式:
for(循环变量;循环条件;循环操作)
{
循环体语句
}
例题:求n个分数的和:输入n值,求1/1-1/2+1/3-1/4…的值。
//sign代表正负数的1符号,term代表一个分数,sum代表式子的总和
#include
int main(void){
int n,i;
printf("输入项数:");
scanf("%d",&n);
double sum=0.0,sign=1.0,term;
for(i=1;i<=n;i++){
term=sign/i;
sum+=term;
sign*=-1;
}
printf("sum=%f\n",sum);
return 0;
}
break语句只能用于循环语句和switch语句中,作用是退出结束循环语句和switch语句,接着执行循环和switch语句后续语句
跳过循环体continue后面未执行的语句,接着进行循环下一次迭代。
注意:
外层循环一次,内层全部循环一次(外层循环一次,内层for循环全部执行完成再进行外层的一次循环)
for(循环变量;循环条件;循环操作)
{
for(循环变量;循环条件;循环操作)
{
循环体;
}
}
例题:打印一下图案
*
* *
* * *
* * * *
* * * * *
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
printf("*");
}
printf(‘\n’);
}