C语言整理-2
2015-10-22 13:37
260 查看
分支结构
在学分支结构之前,要知道一点就是C89标准中没有BOOl这个类型,因此需要将标准升级为C99标准。C99标准在Xcode中,在新建一个工程的时候,选择type时,选择foundation。
创建工程之后,会发现,与之前的main.c的后缀已经变为main.m。这是objective-C环境下的后缀。
与之前.c的页面中,还有不同的是:
将#include<stdio.h>换成
#import <Foundation/Foundation.h>
//import是oc语法,作用和include是一样的。都是引入一个文件。 //Foundation/Foundation.h 是系统提供的一些功能,可以直接用,比stdio.h所包含的东西多得多。 |
1、bool数据类型
bool数据类型,只有yes和no两个值,非真即假。在C语言中,认为,非0即为真。用处:用于if语句的时候和循环判断的时候。
在编译过程中,C语言将bool的yes值编译成1存在内存中,将no值编译成0,保存在内存中。
#define yes 1
#define no 0
2、关系运算符
关系运算符主要就是两者之间的比较,> (大于),>= (大于等于),< (小于),<= (小于等于),== (等于),!=(不等于)。比较得出的结果是bool类型的值,用bool类型变量来存储。其他没什么了。3、逻辑运算符
逻辑运算符就三个:与(&&),或(||),非(!)参与运算的数,在符号两边都是bool值。得出的结果不是真就是假。
&& 逻辑与:只要有一个为假,全都为假。
|| 逻辑或:只要有一个为真,结果都为真。
!逻辑非:取反。
短路现象:
逻辑与运算的时候,如果系统检测到&&前的值是no,那么将不再去判断&&号后面的值,此时,如果&&后的值有赋值运算,赋值运算也不执行。
逻辑或运算的时候,如果系统检测到 || 号前的值是yes ,那么将不再去判断 || 号后面的值,此时,如果 || 后的值有赋值运算,赋值运算也不执行。
//短路现象 //逻辑与,如果前面判断是假,后面的判断不再执行。 // int num1 = -1 ; // int num2 = -1; // BOOL b3 = (num1 = 0) && (num2 = 2);//假 // // printf("%d",b3);//0 // printf("num1 = %d \n",num1);// 0 // printf("num2 = %d]\n",num2); // -1 //短路现象 //逻辑或,如果前面判断是真,后面的判断不再执行。 // int num1 = -1 ; // int num2 = -1; // BOOL b3 = (num1 = 2) || (num2 = 0);//真 // // printf("%d",b3);//1 // printf("num1 = %d \n",num1);// 2 // printf("num2 = %d)\n",num2); // -1 |
4、if语句
程序的三种结构:顺序结构:按顺序执行程序,直到完事为止。
分支结构:if语句和switch
循环结构:循环的执行一段语句。直到循环条件结束为止。
分支结构有两个: if语句和switch语句
if语句有三种方式:
(1)if(条件表达式){
}
//分支结构 //if的(第一种形式) // BOOL b1 = NO; // if (/*条件表达式:要明确的表明条件是真是假*/b1){ // printf("你个大骗子。。。"); // } //练习 /* 从控制台输入一个整数。 判断这个整数是否>100。 如果大于100,输出:“这个数大于100” */ // int num = 0; // printf("请输入一个整数,按回车结束:\n"); // scanf("%d",&num); // if(num > 100){ // printf("你输入的数为:%d \n",num); // printf("这个整数大于100\n"); // } // char c1 = 0; // printf("输入一个字符,按回车结束:\n"); // scanf("%c",&c1); // BOOL b1 ='m' == c1; // if(b1){ // printf("输入的是男性"); // } |
(2)if(条件表达式){
}else{
}
/ char c2 = 0; // printf("请输入字符:"); // scanf("%c",&c2); // if ('m' == c2) { // // printf("正太"); // }else{ // printf("萝莉"); // } // int year = 0; // printf("请输入年份,按回车结束:"); // scanf("%d",&year); // // //判断闰年的条件 // BOOL b1 = (year % 400 == 0 ) ; // BOOL b2 =(year % 100 !=0) && (year % 4==0); // if(b1 || b2){ // // printf("%d\t是闰年\n",year); // // }else{ // printf("%d\t是平年!",year); // } |
(3)if(条件表达式){
}else if(条件表达式){
}else{
}
// char c3 = 0; // printf("输入一个字符:"); // scanf("%c",&c3); // // if('m' == c3){ // printf("男性"); // }else if ('f' == c3){ // printf("女性"); // }else{ // printf("春哥"); // } /* 输入一个字符,判断 s:春天 m:夏天 a:秋天 w:冬天 其他:输入有误。 */ // char c1 = 0; // // printf("输入一个字符,按回车结束:"); // // scanf("%c",&c1); // // if('s' == c1){ // printf("我是春天!"); // }else if('m' == c1 ){ // printf("我是夏天!"); // // }else if('a' == c1){ // printf("我是秋天!"); // // }else if ('w' == c1){ // printf("我是冬天!"); // }else{ // printf("输入有误!!"); // } |
5、条件表达式
//条件表达式 // int num1 = 10; // int num2 = 20; // // int num3 = num1>num2 ? num1 : num2; // // printf("num3 = %d",num3); //课后练习题 /* 使用条件运算符,选择出三个数中,哪个最大。 */ |
Switch 分支语句
Switch分支语句就是为了优化if(){}elseif(){}过多条件。//switch分支语句 // switch (apple) { // case apple: // printf("我是苹果也!"); // //break:终止往后继续执行 // break; // case banana: // printf("我是香蕉也!"); // break; // case orange: // printf("我是橘子也!"); // break; // case watermelon: // printf("我是西瓜也!"); // break; // default: // printf("我不是水果也!"); // } |
注意的是:switch ()括号中的条件必须为整型条件表达式。在每一个case下的语句代码,最后都要加上break,用来跳出switch语句。
//练习 // int season = 0; // printf("请输入一个数字,按回车结束:"); // scanf("%d",&season); // // switch (season) { // case 1: // printf("春天啊我是!spring"); // break; // case 2: // printf("夏天啊我是!summer"); // break; // case 3: // printf("秋天啊我是!autumn"); // break; // case 4: // printf("冬天啊我是!winter"); // break; // // default: // printf("啥也不是啊我!nothing"); // break; // } |
6、枚举enum
#import <Foundation/Foundation.h> //枚举,建议写在这个地方。 enum season{ //第一个元素,默认为0.后面元素依次+1.spring自动被赋值为0,summer为1. //每个值都可以改变默认值,后面的数还是依次+1.初始化过的默认值,后面的数还是依次+1 spring = 100,//100 summer = 200,// 200 autumn,//201 winter//202 }; // 练习,定义一个枚举 //定义五个水果:苹果(10),香蕉,橘子,西瓜 enum fruits{ apple = 10, banana, orange, watermelon }; int main(){ } |
相关文章推荐
- C语言整理-1
- C语言编写遗传算法解决TSP旅行商问题
- 调节系统音量VC++(适合win和xp系统) 打开静音 增减和减小系统音量
- Size Balanced Tree(SBT) 类模板C++实现(持续更新)
- c语言学习之基础知识点介绍(二):格式化控制符和变量的补充
- 黑马程序员——OC语言日志——私有变量和私有方法
- C++中关于main函数的几点说明
- C++中关于main函数的几点说明
- 使用javah生成C/C++头文件的误区
- C/C++ 利用FindFirstFile()和FindNextFile() 历遍指定目录的所有文件
- C++从1~m数字中任取k个元素,求所有组合算法
- c语言学习之基础知识点介绍(一):输出语句和变量简单介绍
- 项目39.3-2 求1000000以内的正整数n,要求9n是n的反序数
- 右值引用C++11
- C语言算法训练2
- C语言文件操作函数大全
- C++学习(3)
- C++使用gsoap调用webservice接口
- eclipse+cdt+minGW (C/C++ 编译)
- C语言格式化输出与输入