iOS开发学习第二课——BOOL类型/if语句/switch语句
2015-05-23 14:32
483 查看
在昨天学习过C语言最为基础的部分之后,今天在明哥的带领下,我又依次学习了BOOL类型、关系运算符、逻辑运算符、if语句及switch语句。尽管这些东西同样属于C语言之中的基础,不过相比较昨天的内容,却要更加深入一些,学习起来也困难了许多。
在今天所讲的内容之中,if语句和switch语句相对更为重要一些,尤其是if语句。它们两个是实际开发之中非常常用的语句。
//BOOL布尔类型,是一种表示非真即假的数据类型,布尔类型的变量只有 YES 和 NO 两个类型,YES 即为真,NO 即为假。YES---1
NO---0
//在C语言中,认为非0即为真
//定义一个BOOL值类型
BOOL a
= YES;
printf("a
= %d\n",a);
BOOL b
= NO;
printf("b
= %d\n",b);
//关系运算符 >大于 >=大于等于 <</span>小于 <=小于等于 ==等于 !=非等
//值用BOOL值类型来存储
BOOL isTure
= YES;
int c
= 5,d = 6;
isTure
= c > d;
printf("1
isTure = %d\n",isTure);
isTure
= c >= d;
printf("2
isTure = %d\n",isTure);
isTure
= c < d;
printf("3
isTure = %d\n",isTure);
isTure
= c == d;
printf("4
isTure = %d\n",isTure);
isTure
= c != d;
printf("5
isTure = %d\n",isTure);
//逻辑运算符 &&逻辑与 ||逻辑或 !逻辑非
//&& 逻辑与---只有两边运算符的表达式同时为真才为真,一真一假则为假,同时为假也为假
BOOL result
= YES;
int x
= 10,y = 20,z = 30;
result
= x > y && x < z;
printf("result
= %d\n",result);
result
= x < y && x < z;
printf("result
= %d\n",result);
//逻辑与的短路现象,一旦运算符左边的表达式结果为假的时候,那么整个逻辑表达式的结果就为假,后面的表达式的结果不影响整个逻辑表达式的结果,而且不执行即不再判断右边表达式的结果
result
= x > y && ( z = 6);
printf("result
= %d,z = %d\n",result,z);
//|| 逻辑或---只有两边运算符的表达式同时为假才为假,一真一假则为真,同时为真也为真
result
= x < y || y > z;
printf("result
= %d\n",result);
result
= x > y || y > z;
printf("result
= %d\n",result);
//逻辑或的短路现象原理同上
result
= x < y || ( z = 6);
printf("result
= %d,z = %d\n",result,z);
//! 逻辑非---对结果取反 1---!
= 0 0---!
= 1
//逻辑或的短路现象原理同上
result
= ! ( x < y ) || ( z = 6);
printf("result
= %d,z = %d\n",result,z);
//if语句的第一种表达形式:if(条件){ 语句 };如果此时条件成立,则执行语句,否则直接跳出语句
char sex
= '0';
printf("请告诉我小龙的性别:");
scanf("%c",&sex);
if (sex
== 'm') {
printf("小龙是个非女性!\n");
}
//if语句的第二种表达形式:if
( 条件 ){ 语句1
} else { 语句2
} ;如果此时条件成立,则执行语句1,如果条件不成立,则执行语句2.且两个语句不可以同时执行
int a1
= 0,b1 = 0;
int max
= 0;//max 用来存储最大值
int min
= 0;//min 用来存储最小值
printf("亲,请分别输入a1,b1的值:");
scanf("%d%d",&a1,&b1);
if (
a1 > b1 ) {
//如果a1
> b1,则把a1的值赋给max
//如果a1
< b1,则把b1的值赋给min
max
= a1;
min
= b1;
} else {
//否则,则把b1赋给max
//否则,则把a1赋给min
max
= b1;
min
= a1;
}
printf("max
= %d,min = %d",max,min);
//判断年份是否为闰年,条件是年份能被400整除或者能被4整除,但不能被100整除
int year
= 0;
printf("亲,请输入年份:");
scanf("%d",&year);
if (
year % 400 == 0 || ( year % 4 == 0 && year % 100 != 0 )) {
printf("%d是闰年\n",year);
}else{
printf("%d是平年\n",year);
}
//if语句的第三种表现形式:
//输入一个字符,如果是数字则输出数字;如果是大写字母则输出大写字母;如果是小写字母则输出小写字母;否则是其他
//数字 '0'---'9' == 48---57
//大写字母 'A'---'Z' == 65---90
//小写字母 'a'---'z' == 97---122
char m
= 0;
printf("亲,请输入一个字符:");
scanf("%c",&m);
if (m
>='0' && m <= '9') {
printf("输入的是数字\n");
}else if (
m >='A' && m <= 'Z'){
printf("输入的是大写字母\n");
}else if (m
>= 'a' && m <= 'z'){
printf("输入的是小写字母\n");
}else{
printf("输入的是其他字符\n");
}
//条件表达式的形式:条件表达式 ? 表达式1
: 表达式2
//在条件表达式当中,如果条件表达式为真,则值为表达式1的值;如果条件表达式为假,则值为表达式2的值
int j
= 2,k = 3,f = 0;
f
= j < k ? j : k;
printf("f
= %d\n",f);
int j
= 2,k = 3,f = 0;
f
= j < k ? j > k : j < k;
printf("f
= %d\n",f);
//求三个整型数中的最大值
//第一种方法
int x
= 0,y = 0,z = 0,max = 0;
printf("亲,请分别输入x,y,z的值:");
scanf("%d%d%d",&x,&y,&z);
if (x
> y) {
max
= x;
}else{
max
= y;
}
//接着比较max和z的大小
if (max
> z) {
max
= max;
}else{
max
= z;
}
printf("最大值为:%d\n",max);
//第二种方法
int x
= 0,y = 0,z = 0,max = 0;
printf("亲,请分别输入x,y,z的值:");
scanf("%d%d%d",&x,&y,&z);
max
= x > y ? x : y;
max
= max > z ? max : z;
printf("最大值为:%d\n",max);
//switch
case 开关 switch 与 case 的结合使用
//输出春夏秋冬 1---春天 2---夏天 3---秋天 4---冬天
int season
= 0;
printf("请输入一个季节数字:");
scanf("%d",&season);
switch (season)
{
case 1://case 后面的值必须是常量或常量表达式
printf("春天");
break;
case 2:
printf("夏天");
break;
case 3://如果在 case 语句里面进行定义变量的话,那么必须要使用一对 {}
,表明这是 case 语句里面的内容
printf("秋天");
break;
case 4:
printf("冬天");
break;
default://只有当其余的 case 的值都不满足条件的时候才会执行 default 里的语句,与 default 所放的位置无关
printf("输入有误\n");
break;//作用,结束 switch
case 分支,跳出 switch
case 分支
}
//定义座机号 phoneNumber
教学部---801
行政部---802
咨询部---803
int phoneNumber
= 0;
printf("请输入座机号码:");
scanf("%d",&phoneNumber);
switch (phoneNumber)
{
case 801:
printf("教学部");
break;
case 802:
printf("行政部");
break;
case 803:
printf("咨询部");
break;
default:
printf("输入有误");
break;
}
return 0;
}
作业:
#import
int main(int argc, const char *
argv[]) {
//3.(***)输入生日,输出年龄(周岁)和星座。
//提示:白羊座 3.21-4.19
//金牛座 4.20-5.20
//双子座 5.21-6.21
//巨蟹座 6.22-7.22
//狮子座 7.23-8.22
//处女座 8.23-9.22
//天平座 9.23-10.23
//天蝎座 10.24-11.22
//射手座 11.23-12.21
//摩羯座 12.22-1.19
//水瓶座 1.20-2.18
//双鱼座 2.19-3.20
int year
= 0,month = 0,date = 0;
printf("请输入生日年月日:");
scanf("%d%d%d",&year,&month,&date);
switch (month)
{
case 1:
if (
date >= 20 ) {
printf("%d周岁\n星座:水瓶座\n",2015
- year);
}else{
printf("%d周岁\n星座:摩羯座\n",2015
- year);
}
break;
case 2:
if (
date >= 19 ) {
printf("%d周岁\n星座:双鱼座\n",2015
- year);
}else{
printf("%d周岁\n星座:水瓶座\n",2015
- year);
}
break;
case 3:
if (
date >= 21 ) {
printf("%d周岁\n星座:白羊座\n",2015
- year);
}else{
printf("%d周岁\n星座:双鱼座\n",2015
- year);
}
break;
case 4:
if (
date >= 20 ) {
printf("%d周岁\n星座:金牛座\n",2015
- year);
}else{
printf("%d周岁\n星座:白羊座\n",2015
- year);
}
break;
case 5:
if (
date >= 21 ) {
printf("%d周岁\n星座:双子座\n",2015
- year);
}else{
printf("%d周岁\n星座:金牛座\n",2015
- year);
}
break;
case 6:
if (
date >= 22 ) {
printf("%d周岁\n星座:巨蟹座\n",2015
- year);
}else{
printf("%d周岁\n星座:双子座\n",2015
- year);
}
break;
case 7:
if (
date >= 23 ) {
printf("%d周岁\n星座:狮子座\n",2015
- year);
}else{
printf("%d周岁\n星座:巨蟹座\n",2015
- year);
}
break;
case 8:
if (
date >= 23 ) {
printf("%d周岁\n星座:处女座\n",2015
- year);
}else{
printf("%d周岁\n星座:狮子座\n",2015
- year);
}
break;
case 9:
if (
date >= 23 ) {
printf("%d周岁\n星座:天平座\n",2015
- year);
}else{
printf("%d周岁\n星座:处女座\n",2015
- year);
}
break;
case 10:
if (
date >= 24 ) {
printf("%d周岁\n星座:天蝎座\n",2015
- year);
}else{
printf("%d周岁\n星座:天平座\n",2015
- year);
}
break;
case 11:
if (
date >= 23 ) {
printf("%d周岁\n星座:射手座\n",2015
- year);
}else{
printf("%d周岁\n星座:天蝎座\n",2015
- year);
}
break;
case 12:
if (
date >= 22 ) {
printf("%d周岁\n星座:摩羯座\n",2015
- year);
}else{
printf("%d周岁\n星座:射手座\n",2015
- year);
}
break;
default:
printf("输入有误");
break;
}
//6.(**)有一个函数:x<1的时候,y
= x;1<=x<10的时候,y=2x-1;x>=10的时候,y=3x-11。写一段程序,输入x,输出y值
float x
= 0;
printf("请输入x的值:");
scanf("%f",&x);
if (x
< 1) {
printf("y的值为%f",x);
}else if (x
>= 1 && x <= 10){
printf("y的值为%f",x
* 2 - 1);
}else if (x
>= 10){
printf("y的值为%f",x
* 3 - 11);
}
//7.(**)编制一个完成两个数四则运算程序。如:用户输入34+56则输出结果为90.00,要求运算结果保留2位有效小数,用户输入时将2个运算数以及运算符都输入,根据运算符求结果
float aa
= 0,bb = 0;
char cc
= 0;
printf("亲,请输入一个完整的运算式(后一个数不可为零):");
scanf("%f%c%f",&aa,&cc,&bb);
switch (cc)
{
case '+':
printf("运算的结果是:%.2f",aa
+ bb);
break;
case '-':
printf("运算的结果是:%.2f",aa
- bb);
break;
case '*':
printf("运算的结果是:%.2f",aa
* bb);
break;
case '/':
printf("运算的结果是:%.2f",aa
/ bb);
break;
default:
printf("您的输入有误");
break;
}
return 0;
}
在今天所讲的内容之中,if语句和switch语句相对更为重要一些,尤其是if语句。它们两个是实际开发之中非常常用的语句。
//BOOL布尔类型,是一种表示非真即假的数据类型,布尔类型的变量只有 YES 和 NO 两个类型,YES 即为真,NO 即为假。YES---1
NO---0
//在C语言中,认为非0即为真
//定义一个BOOL值类型
BOOL a
= YES;
printf("a
= %d\n",a);
BOOL b
= NO;
printf("b
= %d\n",b);
//关系运算符 >大于 >=大于等于 <</span>小于 <=小于等于 ==等于 !=非等
//值用BOOL值类型来存储
BOOL isTure
= YES;
int c
= 5,d = 6;
isTure
= c > d;
printf("1
isTure = %d\n",isTure);
isTure
= c >= d;
printf("2
isTure = %d\n",isTure);
isTure
= c < d;
printf("3
isTure = %d\n",isTure);
isTure
= c == d;
printf("4
isTure = %d\n",isTure);
isTure
= c != d;
printf("5
isTure = %d\n",isTure);
//逻辑运算符 &&逻辑与 ||逻辑或 !逻辑非
//&& 逻辑与---只有两边运算符的表达式同时为真才为真,一真一假则为假,同时为假也为假
BOOL result
= YES;
int x
= 10,y = 20,z = 30;
result
= x > y && x < z;
printf("result
= %d\n",result);
result
= x < y && x < z;
printf("result
= %d\n",result);
//逻辑与的短路现象,一旦运算符左边的表达式结果为假的时候,那么整个逻辑表达式的结果就为假,后面的表达式的结果不影响整个逻辑表达式的结果,而且不执行即不再判断右边表达式的结果
result
= x > y && ( z = 6);
printf("result
= %d,z = %d\n",result,z);
//|| 逻辑或---只有两边运算符的表达式同时为假才为假,一真一假则为真,同时为真也为真
result
= x < y || y > z;
printf("result
= %d\n",result);
result
= x > y || y > z;
printf("result
= %d\n",result);
//逻辑或的短路现象原理同上
result
= x < y || ( z = 6);
printf("result
= %d,z = %d\n",result,z);
//! 逻辑非---对结果取反 1---!
= 0 0---!
= 1
//逻辑或的短路现象原理同上
result
= ! ( x < y ) || ( z = 6);
printf("result
= %d,z = %d\n",result,z);
//if语句的第一种表达形式:if(条件){ 语句 };如果此时条件成立,则执行语句,否则直接跳出语句
char sex
= '0';
printf("请告诉我小龙的性别:");
scanf("%c",&sex);
if (sex
== 'm') {
printf("小龙是个非女性!\n");
}
//if语句的第二种表达形式:if
( 条件 ){ 语句1
} else { 语句2
} ;如果此时条件成立,则执行语句1,如果条件不成立,则执行语句2.且两个语句不可以同时执行
int a1
= 0,b1 = 0;
int max
= 0;//max 用来存储最大值
int min
= 0;//min 用来存储最小值
printf("亲,请分别输入a1,b1的值:");
scanf("%d%d",&a1,&b1);
if (
a1 > b1 ) {
//如果a1
> b1,则把a1的值赋给max
//如果a1
< b1,则把b1的值赋给min
max
= a1;
min
= b1;
} else {
//否则,则把b1赋给max
//否则,则把a1赋给min
max
= b1;
min
= a1;
}
printf("max
= %d,min = %d",max,min);
//判断年份是否为闰年,条件是年份能被400整除或者能被4整除,但不能被100整除
int year
= 0;
printf("亲,请输入年份:");
scanf("%d",&year);
if (
year % 400 == 0 || ( year % 4 == 0 && year % 100 != 0 )) {
printf("%d是闰年\n",year);
}else{
printf("%d是平年\n",year);
}
//if语句的第三种表现形式:
//输入一个字符,如果是数字则输出数字;如果是大写字母则输出大写字母;如果是小写字母则输出小写字母;否则是其他
//数字 '0'---'9' == 48---57
//大写字母 'A'---'Z' == 65---90
//小写字母 'a'---'z' == 97---122
char m
= 0;
printf("亲,请输入一个字符:");
scanf("%c",&m);
if (m
>='0' && m <= '9') {
printf("输入的是数字\n");
}else if (
m >='A' && m <= 'Z'){
printf("输入的是大写字母\n");
}else if (m
>= 'a' && m <= 'z'){
printf("输入的是小写字母\n");
}else{
printf("输入的是其他字符\n");
}
//条件表达式的形式:条件表达式 ? 表达式1
: 表达式2
//在条件表达式当中,如果条件表达式为真,则值为表达式1的值;如果条件表达式为假,则值为表达式2的值
int j
= 2,k = 3,f = 0;
f
= j < k ? j : k;
printf("f
= %d\n",f);
int j
= 2,k = 3,f = 0;
f
= j < k ? j > k : j < k;
printf("f
= %d\n",f);
//求三个整型数中的最大值
//第一种方法
int x
= 0,y = 0,z = 0,max = 0;
printf("亲,请分别输入x,y,z的值:");
scanf("%d%d%d",&x,&y,&z);
if (x
> y) {
max
= x;
}else{
max
= y;
}
//接着比较max和z的大小
if (max
> z) {
max
= max;
}else{
max
= z;
}
printf("最大值为:%d\n",max);
//第二种方法
int x
= 0,y = 0,z = 0,max = 0;
printf("亲,请分别输入x,y,z的值:");
scanf("%d%d%d",&x,&y,&z);
max
= x > y ? x : y;
max
= max > z ? max : z;
printf("最大值为:%d\n",max);
//switch
case 开关 switch 与 case 的结合使用
//输出春夏秋冬 1---春天 2---夏天 3---秋天 4---冬天
int season
= 0;
printf("请输入一个季节数字:");
scanf("%d",&season);
switch (season)
{
case 1://case 后面的值必须是常量或常量表达式
printf("春天");
break;
case 2:
printf("夏天");
break;
case 3://如果在 case 语句里面进行定义变量的话,那么必须要使用一对 {}
,表明这是 case 语句里面的内容
printf("秋天");
break;
case 4:
printf("冬天");
break;
default://只有当其余的 case 的值都不满足条件的时候才会执行 default 里的语句,与 default 所放的位置无关
printf("输入有误\n");
break;//作用,结束 switch
case 分支,跳出 switch
case 分支
}
//定义座机号 phoneNumber
教学部---801
行政部---802
咨询部---803
int phoneNumber
= 0;
printf("请输入座机号码:");
scanf("%d",&phoneNumber);
switch (phoneNumber)
{
case 801:
printf("教学部");
break;
case 802:
printf("行政部");
break;
case 803:
printf("咨询部");
break;
default:
printf("输入有误");
break;
}
return 0;
}
作业:
#import
int main(int argc, const char *
argv[]) {
//3.(***)输入生日,输出年龄(周岁)和星座。
//提示:白羊座 3.21-4.19
//金牛座 4.20-5.20
//双子座 5.21-6.21
//巨蟹座 6.22-7.22
//狮子座 7.23-8.22
//处女座 8.23-9.22
//天平座 9.23-10.23
//天蝎座 10.24-11.22
//射手座 11.23-12.21
//摩羯座 12.22-1.19
//水瓶座 1.20-2.18
//双鱼座 2.19-3.20
int year
= 0,month = 0,date = 0;
printf("请输入生日年月日:");
scanf("%d%d%d",&year,&month,&date);
switch (month)
{
case 1:
if (
date >= 20 ) {
printf("%d周岁\n星座:水瓶座\n",2015
- year);
}else{
printf("%d周岁\n星座:摩羯座\n",2015
- year);
}
break;
case 2:
if (
date >= 19 ) {
printf("%d周岁\n星座:双鱼座\n",2015
- year);
}else{
printf("%d周岁\n星座:水瓶座\n",2015
- year);
}
break;
case 3:
if (
date >= 21 ) {
printf("%d周岁\n星座:白羊座\n",2015
- year);
}else{
printf("%d周岁\n星座:双鱼座\n",2015
- year);
}
break;
case 4:
if (
date >= 20 ) {
printf("%d周岁\n星座:金牛座\n",2015
- year);
}else{
printf("%d周岁\n星座:白羊座\n",2015
- year);
}
break;
case 5:
if (
date >= 21 ) {
printf("%d周岁\n星座:双子座\n",2015
- year);
}else{
printf("%d周岁\n星座:金牛座\n",2015
- year);
}
break;
case 6:
if (
date >= 22 ) {
printf("%d周岁\n星座:巨蟹座\n",2015
- year);
}else{
printf("%d周岁\n星座:双子座\n",2015
- year);
}
break;
case 7:
if (
date >= 23 ) {
printf("%d周岁\n星座:狮子座\n",2015
- year);
}else{
printf("%d周岁\n星座:巨蟹座\n",2015
- year);
}
break;
case 8:
if (
date >= 23 ) {
printf("%d周岁\n星座:处女座\n",2015
- year);
}else{
printf("%d周岁\n星座:狮子座\n",2015
- year);
}
break;
case 9:
if (
date >= 23 ) {
printf("%d周岁\n星座:天平座\n",2015
- year);
}else{
printf("%d周岁\n星座:处女座\n",2015
- year);
}
break;
case 10:
if (
date >= 24 ) {
printf("%d周岁\n星座:天蝎座\n",2015
- year);
}else{
printf("%d周岁\n星座:天平座\n",2015
- year);
}
break;
case 11:
if (
date >= 23 ) {
printf("%d周岁\n星座:射手座\n",2015
- year);
}else{
printf("%d周岁\n星座:天蝎座\n",2015
- year);
}
break;
case 12:
if (
date >= 22 ) {
printf("%d周岁\n星座:摩羯座\n",2015
- year);
}else{
printf("%d周岁\n星座:射手座\n",2015
- year);
}
break;
default:
printf("输入有误");
break;
}
//6.(**)有一个函数:x<1的时候,y
= x;1<=x<10的时候,y=2x-1;x>=10的时候,y=3x-11。写一段程序,输入x,输出y值
float x
= 0;
printf("请输入x的值:");
scanf("%f",&x);
if (x
< 1) {
printf("y的值为%f",x);
}else if (x
>= 1 && x <= 10){
printf("y的值为%f",x
* 2 - 1);
}else if (x
>= 10){
printf("y的值为%f",x
* 3 - 11);
}
//7.(**)编制一个完成两个数四则运算程序。如:用户输入34+56则输出结果为90.00,要求运算结果保留2位有效小数,用户输入时将2个运算数以及运算符都输入,根据运算符求结果
float aa
= 0,bb = 0;
char cc
= 0;
printf("亲,请输入一个完整的运算式(后一个数不可为零):");
scanf("%f%c%f",&aa,&cc,&bb);
switch (cc)
{
case '+':
printf("运算的结果是:%.2f",aa
+ bb);
break;
case '-':
printf("运算的结果是:%.2f",aa
- bb);
break;
case '*':
printf("运算的结果是:%.2f",aa
* bb);
break;
case '/':
printf("运算的结果是:%.2f",aa
/ bb);
break;
default:
printf("您的输入有误");
break;
}
return 0;
}
相关文章推荐
- 【学习ios之路:C语言】布尔类型,关系运算符、逻辑运算符、if 、switch..case.语句
- C语言基础---BOOL 类型,运算符,if 语句,switch语句
- 《IOS_C语言》BOOL布尔类型、关系运算符、逻辑运算符、if语句、枚举类型、switch语句
- 作业《IOS_C语言》BOOL布尔类型、关系运算符、逻辑运算符、if语句、枚举类型、switch语句
- [TwistedFate]bool类型,关系运算符,逻辑运算符,程序的三种结构,条件表达式,枚举类型,if,switch语句
- ios开发学习----swift学习之(一)基础数据类型
- 斯坦福大学iOS应用开发教程学习笔记(第二课) 计算器实现(mvc实战)
- 斯坦福大学iOS应用开发教程学习笔记(第二课) 计算器实现2 改进版
- 【IOS 开发学习总结-OC-2】objective-c 数据类型
- php学习基础篇之数据类型转换、运算符、if 、switch 流程控制
- C++ Primer 学习笔记_19_语句 --if/switch/while/for语句
- C/C++学习(一)题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
- C++ Primer 学习笔记10 语句 (空语句、if语句、switch语句、for语句、dowhile语句、break语句、goto语句、continue语句、try块和异常处理)
- 【Swift】学习笔记(五)——控制语句(if,switch,for-in,for,while,do-while)
- 斯坦福大学iOS应用开发教程学习笔记(第二课)My First iOS App
- IOS开发---OC语言-②BOOL类型
- C#学习 第二章 语句控制,if,switch,try-catch,whlie,foreach,break,continue,goto
- JAVA学习笔记4——if语句+switch语句+while语句
- IOS 开发学习五 数据类型
- ios开发-C语言关键字、标识符、注释、数据类型等学习