C语言第二节-关系运算符,switch,if
2015-09-22 16:01
375 查看
1.BOOL布尔类型
是一种非真即假的数据类型,布尔类型的变量只有YES和NO两个值
在C语言中,非0即为真
//标准:C89没有布尔类型,C99有
//C工程支持C89,OC工程支持C99
//BOOL包含两个值:真(YES)、假(NO)
BOOL
r1 = YES;
BOOL
r2 = NO;
//布尔类型使用%d输出,YSE:1
NO:0
//#define YES 1 #define NO 0
//计算机已经定义
printf("r1 = %d, r2 = %d\n",
r1, r2);
//bool包含两个值:真(true)、假(false)
2.关系运算符
#pragma mark-----关系运算符>
>= < <= == !=
/*
1、用于两个数的比较
2、关系运算符的结果只有两种:真、假。使用BOOL类型变量接收。
3、由常量、变量、关系运算符组成的表达式,称为关系表达式
*/
//大于、小于
BOOL
r3 = 5
> 3;
printf("r3 = %d\n", r3);
BOOL
r4 = 5
> 4
> 3;
//5>4结果为真,1<3结果为假
printf("r4 = %d\n", r4);
//>= <=
BOOL
r5 = 5
>= 5;
printf("r5 = %d\n", r5);
//==等于
!=不等于
//=
赋值运算符
//浮点数不能使用
==
比较是否相等,小数在存储时存在精度问题。整型和字符型可以使用。
BOOL
r6 = 7
== 8;
printf("r6 = %d\n", r6);
BOOL
r7 = 7
!= 8;
printf("r7 = %d\n",
r7);
//计算机在存储字符时,本质上存储的是对应的整型数
//字符和整型数的对应关系,依据ASCII编码规范
char
a = 'A';
printf("%c\n",
a);
printf("%d\n", a);
3.逻辑运算符
#pragma mark-----逻辑运算符
/*
逻辑与 &&
公式:
表达式1 &&
表达式2
运算规则:只有表达式1和表达式2同时为真,逻辑与表达式的结果才为真。
一假全假。
*/
int
a = 10;
int
b = 20;
//表达式1 a<b,结果为真;表达式2
本,结果为假
//(a < b) && (b == 3)
的结果为假
BOOL
r1 = (a < b) && (b == 3);
printf("r1 = %d\n", r1);
BOOL
r2 = (a == 3) && (b > a);
printf("r2 = %d\n", r2);
BOOL
r3 = (a > 5) && a++;
printf("r3 = %d, a = %d\n", r3, a);
//短路现象
//当表达式1结果为假时,逻辑与表达式的结果已经确定为假,所以表达式2不再执行
BOOL
r4 = (b < 5) && b++;
printf("r4 = %d, b = %d\n", r4, b);
/*
逻辑或
||
公式:表达式1 ||
表达式2
运算规则:表达式1和表达式2,只要有一个结果为真,逻辑或表达式结果为真。
一真即真。
*/
int
a = 10;
int
b = 20;
BOOL
r1 = (a < b) || (b == 3);
printf("r1 = %d\n", r1);
BOOL
r2 = (a == 3) || (b < a);
printf("r2 = %d\n", r2);
//短路现象
BOOL
r3 = (b > 5) || b++;
printf("r3 = %d, b = %d\n", r3, b);
//逻辑非
!
取反
BOOL
r4 = !(a > b);
printf("r4 = %d\n", r4);
/*
(大概)
运算符的优先级
() > ! > 算术运算符
>
关系运算符 >
逻辑运算符 >
赋值运算符
*/
if语句
1.if
(<#condition#>) {
<#statements#>
} else
{
<#statements#>
}
//输入一个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年
//提示:闰年:能被400整除或者(能被4整除,但是不能被100整除)。
int year =
0;
printf("输入一个年份:");
scanf("%d", &year);
//a % b == 0 a能被b整除
if
(year % 400
==0
|| (year % 4
==0
&& year % 100
!= 0) ) {
printf("该年份是闰年\n");
} else
{
printf("该年份不是闰年\n");
}
2.if
(<#condition#>) {
<#statements#>
} else if {
<#statements#>
} else {
<#statements#>
}
//练习:从键盘输入一个字符,如果是
数字
打印 this is digital,如果是大写字母,打印this is capital letter,如果是小写字母,打印
this is letter,如果是其他字符,打印
other。
char
character = 0;
printf("请输入一个字符:");
scanf("%c", &character);
//当条件控制在某个范围,使用&& ||
这种结构,绝对不可以使用a<b<c这种连续结构
if
(character >= '0'
&& character <= '9') {
printf("this is digital数字\n");
} else
if (character >=
'A' && character <=
'Z' ) {
printf("this is capital letter大写字母\n");
} else
if (character >=
'a' && character <=
'z') {
printf("this is letter小写字母\n");
} else
{
printf("other\n");
}
switch语句
条件运算符
/*
?:
公式:条件表达式
?表达式1
:表达式2
运算规则:
条件表达式为真,执行表达式1;条件表达式为假,执行表达式2
*/
switch
/*
switch (整型或者字符型表达式) {
case 值1: {
//case后面的值是整型或字符型常量
语句1
break;
}
case 值2:
{
//case后面的值是整型或字符型常量
语句2
break;
}
default:
break;
}
1、如果表达式的值没有和任何一个case后面的值匹配成功,执行default分支。
2、break语句的作用:结束当前case分支,并且结束switch语句。
*/
//定义一个字符变量,设置初始值。如果字符变量是m,输出男性;如果字符变量是f,输出女性;其他输出未知。
char
character = 'm';
switch
(character) {
case
'm': {
printf("男性\n");
break;
}
case
'f': {
printf("女性\n");
break;
}
default:{
printf("未知\n");
break;
}
}
//从控制台输入一个整数,输出对应的水果名称
//1-苹果 2-
梨子
3-桔子
4-香蕉
int
number = 0;
printf("请输入一个整数1、2、3、4:");
scanf("%d", &number);
switch
(number) {
case
1: {
printf("苹果\n");
break;
}
case
2: {
printf("梨\n");
break;
}
case
3: {
printf("桔子\n");
break;
}
case
4: {
printf("香蕉\n");
break;
}
default:
break;
}
//多个case可以运行同一个代码段
//练习:按照考试成绩(ABCD)的等级,输出百分制分数段
//ABC:属于>60 D:属于<60
char level =
'A';
switch
(level) {
case
'A':
case
'B':
case
'C': {
printf("输出60分以上\n");
break;
}
case
'D': {
printf("输出60分以下\n");
break;
}
default:
break;
}
是一种非真即假的数据类型,布尔类型的变量只有YES和NO两个值
在C语言中,非0即为真
//标准:C89没有布尔类型,C99有
//C工程支持C89,OC工程支持C99
//BOOL包含两个值:真(YES)、假(NO)
BOOL
r1 = YES;
BOOL
r2 = NO;
//布尔类型使用%d输出,YSE:1
NO:0
//#define YES 1 #define NO 0
//计算机已经定义
printf("r1 = %d, r2 = %d\n",
r1, r2);
//bool包含两个值:真(true)、假(false)
2.关系运算符
#pragma mark-----关系运算符>
>= < <= == !=
/*
1、用于两个数的比较
2、关系运算符的结果只有两种:真、假。使用BOOL类型变量接收。
3、由常量、变量、关系运算符组成的表达式,称为关系表达式
*/
//大于、小于
BOOL
r3 = 5
> 3;
printf("r3 = %d\n", r3);
BOOL
r4 = 5
> 4
> 3;
//5>4结果为真,1<3结果为假
printf("r4 = %d\n", r4);
//>= <=
BOOL
r5 = 5
>= 5;
printf("r5 = %d\n", r5);
//==等于
!=不等于
//=
赋值运算符
//浮点数不能使用
==
比较是否相等,小数在存储时存在精度问题。整型和字符型可以使用。
BOOL
r6 = 7
== 8;
printf("r6 = %d\n", r6);
BOOL
r7 = 7
!= 8;
printf("r7 = %d\n",
r7);
//计算机在存储字符时,本质上存储的是对应的整型数
//字符和整型数的对应关系,依据ASCII编码规范
char
a = 'A';
printf("%c\n",
a);
printf("%d\n", a);
3.逻辑运算符
#pragma mark-----逻辑运算符
/*
逻辑与 &&
公式:
表达式1 &&
表达式2
运算规则:只有表达式1和表达式2同时为真,逻辑与表达式的结果才为真。
一假全假。
*/
int
a = 10;
int
b = 20;
//表达式1 a<b,结果为真;表达式2
本,结果为假
//(a < b) && (b == 3)
的结果为假
BOOL
r1 = (a < b) && (b == 3);
printf("r1 = %d\n", r1);
BOOL
r2 = (a == 3) && (b > a);
printf("r2 = %d\n", r2);
BOOL
r3 = (a > 5) && a++;
printf("r3 = %d, a = %d\n", r3, a);
//短路现象
//当表达式1结果为假时,逻辑与表达式的结果已经确定为假,所以表达式2不再执行
BOOL
r4 = (b < 5) && b++;
printf("r4 = %d, b = %d\n", r4, b);
/*
逻辑或
||
公式:表达式1 ||
表达式2
运算规则:表达式1和表达式2,只要有一个结果为真,逻辑或表达式结果为真。
一真即真。
*/
int
a = 10;
int
b = 20;
BOOL
r1 = (a < b) || (b == 3);
printf("r1 = %d\n", r1);
BOOL
r2 = (a == 3) || (b < a);
printf("r2 = %d\n", r2);
//短路现象
BOOL
r3 = (b > 5) || b++;
printf("r3 = %d, b = %d\n", r3, b);
//逻辑非
!
取反
BOOL
r4 = !(a > b);
printf("r4 = %d\n", r4);
/*
(大概)
运算符的优先级
() > ! > 算术运算符
>
关系运算符 >
逻辑运算符 >
赋值运算符
*/
if语句
1.if
(<#condition#>) {
<#statements#>
} else
{
<#statements#>
}
//输入一个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年
//提示:闰年:能被400整除或者(能被4整除,但是不能被100整除)。
int year =
0;
printf("输入一个年份:");
scanf("%d", &year);
//a % b == 0 a能被b整除
if
(year % 400
==0
|| (year % 4
==0
&& year % 100
!= 0) ) {
printf("该年份是闰年\n");
} else
{
printf("该年份不是闰年\n");
}
2.if
(<#condition#>) {
<#statements#>
} else if {
<#statements#>
} else {
<#statements#>
}
//练习:从键盘输入一个字符,如果是
数字
打印 this is digital,如果是大写字母,打印this is capital letter,如果是小写字母,打印
this is letter,如果是其他字符,打印
other。
char
character = 0;
printf("请输入一个字符:");
scanf("%c", &character);
//当条件控制在某个范围,使用&& ||
这种结构,绝对不可以使用a<b<c这种连续结构
if
(character >= '0'
&& character <= '9') {
printf("this is digital数字\n");
} else
if (character >=
'A' && character <=
'Z' ) {
printf("this is capital letter大写字母\n");
} else
if (character >=
'a' && character <=
'z') {
printf("this is letter小写字母\n");
} else
{
printf("other\n");
}
switch语句
条件运算符
/*
?:
公式:条件表达式
?表达式1
:表达式2
运算规则:
条件表达式为真,执行表达式1;条件表达式为假,执行表达式2
*/
switch
/*
switch (整型或者字符型表达式) {
case 值1: {
//case后面的值是整型或字符型常量
语句1
break;
}
case 值2:
{
//case后面的值是整型或字符型常量
语句2
break;
}
default:
break;
}
1、如果表达式的值没有和任何一个case后面的值匹配成功,执行default分支。
2、break语句的作用:结束当前case分支,并且结束switch语句。
*/
//定义一个字符变量,设置初始值。如果字符变量是m,输出男性;如果字符变量是f,输出女性;其他输出未知。
char
character = 'm';
switch
(character) {
case
'm': {
printf("男性\n");
break;
}
case
'f': {
printf("女性\n");
break;
}
default:{
printf("未知\n");
break;
}
}
//从控制台输入一个整数,输出对应的水果名称
//1-苹果 2-
梨子
3-桔子
4-香蕉
int
number = 0;
printf("请输入一个整数1、2、3、4:");
scanf("%d", &number);
switch
(number) {
case
1: {
printf("苹果\n");
break;
}
case
2: {
printf("梨\n");
break;
}
case
3: {
printf("桔子\n");
break;
}
case
4: {
printf("香蕉\n");
break;
}
default:
break;
}
//多个case可以运行同一个代码段
//练习:按照考试成绩(ABCD)的等级,输出百分制分数段
//ABC:属于>60 D:属于<60
char level =
'A';
switch
(level) {
case
'A':
case
'B':
case
'C': {
printf("输出60分以上\n");
break;
}
case
'D': {
printf("输出60分以下\n");
break;
}
default:
break;
}
相关文章推荐
- C语言第一节-进制,运算符,输入输出
- 解析C++中多层派生时的构造函数及一些特殊形式
- c++中try catch的用法
- hdu1695GCD(莫比乌斯反演初步)
- Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件
- C++设计模式——观察者模式
- C++多线程Singleton模式
- 高质量C++/C编程指南-第7章-内存管理(3)
- C++设计模式——单例模式
- 深入解析C++中派生类的构造函数
- 实用工具——ACM工程代码.cpp/.java化
- 多线程锁的一点测试
- C++处理异常 try,catch,throw
- 修练8年C++面向对象程序设计之体会
- 开发一个c++后台程序的大概步骤
- C++面试常见问题
- c/c++的|、||、&、&&、异或、~、!
- C++Primer第五版 练习11.4(解答)
- C++Primer第五版 练习11.3(解答)
- C++Primer第五版 11.1节练习