目录
一.关系,逻辑表达式
1.关系表达式
(1)用关系运算符将两个表达式连接起来的式子。
(2)关系表达式的值是一个逻辑值,即“真”或“假”,
(3)在C的关系运算中,以“1”代表“真”,以“0”代表“假”。
2.逻辑运算符
优先级:!>&&>||
运算符 | 含义 | 举例 | 说明 |
&& | 逻辑与 | a&&b | 如果a和b都为真,则结果为真,否则结果为假 |
|| | 逻辑或 | a||b | 如果a和b中有一个或一个以上为真,则结果为真,若两个都为假,则结果为假 |
! | 逻辑非 | !a | 如果a为真,则!a为假,如果a为假,则!a为真 |
3.优先级
!>算数运算符>关系运算符>&&和||>赋值运算符
4.逻辑表达式
(1) 用逻辑运算符将关系表达式或逻辑量连接起来的式子。
(2)逻辑表达式的值是一个逻辑值,即“真”或“假”,以“1”代表“真”,以“0”代表“假”。
(3)在对逻辑表达式的求解中,并不是所有的逻辑运算符都被执行。
a&&b&&c,只有a为真,才继续右面的运算。
allb|lc,只有a为假,才继续右面的运算。
二.if 语句
if语句的三种形式
1. if语句——单分支结构
(1)语法格式
if(表达式)
{
语句块
}
}
如果表达式的值为真,则执行语句块。
举例 判断一个数为正数
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a>0)
{
printf("%d是正数.\n",a);
}
}
2. if...else 语句——双分支结构
(1)语法格式
if(表达式)
{
语句块1
}
else
{
语句块2
}
表达式为真则执行语句块1,否则执行语句块2
举例运算 计算两个数的商
#include <stdio.h>
int main()
{
double x,y;
double result;
printf("请输入被除数:");
scanf("%lf",&x);
printf("请输入除数:");
scanf("%lf",&y);
result=x/y;
if(y!=0)
{
result=x/y;
printf("两个数的商:%.2f\n",result);
}
else
{
printf("除数为零!\n");
}
printf("两个数的商:%2f\n",result);
}
3. if...else if...else——语句多分支结构
(1)语法格式
if(表达式) {语句块1}
else if(表达式2) {语句块2}
else if(表达式3) {语句块3}
······
else if(表达式n){语句块n}
else{语句块m}
举例运算 字符类型判断
#include <stdio.h>
int main()
{
char c;
printf("Input a character:");
scanf("%c",&c);
if(c>='a' && c<='z'|| c>='A'&& c<='z')
printf(" It is an English character.\n");
else if(c>='0'&& c<='9')
printf("It is a digit character.\n");
else
printf("It is other character.\n");
return 0;
}
三.switch 语句
1.switch语句是多分支条件判断语句,它能够根据表达式的值从多个分支中选择一个执行的分支。
2.switch语句的一般形式
switch(表达式)
{
case 常量表达式1:语句块1;break;
case 常量表达式2:语句块2;break;
case 常量表达式n:语句块n; break;
default:语句块n+1
}
3.执行流程:
(1)首先计算表达式的值,
(2)与各个case后的常量表达式的值比较,当表达式的值与某个常量表达式的值相等时,即执行 其后的语句,然后不再进行判断,继续执行后面所有case后的语句。
(3)如表达式的值与所有case后的常量表达式均不相同,则执行default后的语句。
4.举例运算
#include <stdio.h>
int main()
{ int a;
printf("Input integer number:");
scanf("%d",&a);
switch(a)
{
case 1: printf("Monday\n");break;
case 2: printf("Tuesday\n");break;
case 3: printf("Wednesday\n");break;
case 4: printf("Thursday\n");break;
case 5: printf("Friday\n");break;
case 6: printf("Saturday\n");break;
case 7: printf("Sunday\n");break;
default:printf("error\n");
}
return 0;
}
5.在使用switch语句时应注意以下几点:
①表达式的值为整数、字符、枚举类型。
②常量表达式的值必须互不相同,否则会出现分支矛盾的现象。
③case后面的常量表达式只起标号作用,而不起条件判断作用,即“只是开始执行处的入口标
号”。一般情况下需用break语句跳出switch语句。
④语句块可以是一条语句,或复合语句,可以不用花括号{}。
⑤各个case 和 default 出现的先后次序,并不影响执行结果,习惯上将default子句放在switch的末尾。
⑥多个case标号可共用一组执行语句。
switch(表达式)
{case 常量表达式1:
case 常量表达式2:
case 常量表达式3:语句1;break;
case 常量表达式4:语句2;break;
……
}
PS:图是自己画的就是磕碜了点