C 语言分支结构
#import <Foundation/Foundation.h>
//宏定义
//宏定义 一般使用于大型项目开发当中,或者在工作中经常使用的一些数据或者是接口(网址)我们使用宏定义的时候可以这样理解:理解为为我们的接口或者数据重新起一个名字用于代表这些数据或者接口.
//
//#define Num 123456
int main(int argc, const char * argv[]) {
// int num1 = Num;
// printf("%d\n",num1);
// int num2 = Num;
// printf("%d\n",num2);
//
//...
/**
*BOOL类型表示是一种表示非真即假的数据类型(YES代表的是真(1),NO代表的是假(0)),他和我们c语言中所说的非0即真可以对应去记忆(它在内存中占一个字节,存储的数据是(YES和NO));
//首先定义一个BOOL类型的变量,关系运算符,关系运算符:>,>=,<,<=,!=,==,用于比较两个常量(数值)的大小,比较的结果用于BOOL来接收,BOOL值返回的只有两种(YES->>1,NO->>0);使用%d进行占位.
// */
// BOOL isTure = 5>4;
// printf("%d\n",isTure);
// BOOL isTure1 = 6>=6;
// printf("%d\n",isTure1);
//
//
// int a = 10;
// int b = 10;
// BOOL isTure2 = a!=b;
// printf("%d\n",isTure2);
//
/**
*逻辑运算符:
&&逻辑与:表达的是我们表达式两边同时为真的时候,
我们整个表达式的结果才会为真,(关键字:并且,且,同时)
口诀:同真则真---->短路现象:一假即假
短路:如果第一个表达结果为假,那么他就不再进行后边的判断,所以整个表达式结果 (返回值)为假(0).
|| 逻辑或:表示我们表达式两边同时为假的时候我们整个表达式的结果为假(0),关键字(或者);
口诀;同假即假--->短路现象:一真即真
短路;如果第一个表达式结果为真,那么它就不再进行后边的判断,所以整个表达式结果为真(1)
!逻辑非:颠倒是非,表示取反
*/
/*
//这是逻辑与的短路现象
int a = 10;
int b = 9;
// 0 && 1
int result = a<b && a>b;
printf("%d\n",result);
//逻辑或的短路现象
// 1 || 0
int result1 = a>b || a<b;
printf("%d\n",result1);
*/
//
// int a = 0;
// int result = !(!(!a));
// printf("%d\n",result);
// int a = 7;
// int b = 0;
// int result = 0;
// result = a && b;
// printf("%d\n",result);
//
//
// int a = 9;
// int b = 7;
// int c = 10;
// // 1 || 0
// int result = a<c ||b >c;
// printf("%d\n",result);
//
#pragma mark---sizeof--
//sizeof:计算内存中所占的字节数
// sizeof(12.3f);
// sizeof(4);
// sizeof('h');
// int result = sizeof(4);
// printf("%d\n",result);
// int result1 = sizeof(12.3f);//如果没有后缀f我们系统默认是double类型
// printf("%d\n",result1);
// int result2 = sizeof('h');//打印出占4个字节,是因为转换其对应的ascii码值
// printf("%d\n",result2);
//
//
//
// //只有常量和变量的情况下我们才可以省略sizeof的()
// int a;
// int result3 = sizeof a;
// printf("%d\n",result3);
//
//
//
/*
程序的三种结构:
顺序(就是按顺序从上到下,从左到右依次执行)
分支:(通过一个判断,在两个可选的语句序列之间,选择一个执行)
循环:(在满足某个条件的情况下,重复反复的执行)
分支:
if(条件表达式){语句; }
if(条件表达式){语句; } else{ 语句; };
if(条件表达式){语句; } else if(条件表达式){语句;}else if(...){...}.... else {语句;};
**/
// if (1) {
// printf("打豆豆~~");
// }
// 练习:提示用户输入一个分数,如果分数大于250,就输出,我就是我,颜色不一样的烟火,否则就输出你连250都不如
// //首先定义一个变量去接收我们的分数
// int a;
// //使用printf提示用户输入分数
// printf("用户输入分数");
// //使用scanf阻塞函数
// scanf("%d",&a);
// //if
// if(a>250){
// printf("我就是我,颜色不一样的烟火");
// }
// else
// {
// printf("你连250都不如");
// }
//
//
// //提示用户输入一个分数,如果分数等于250,就输出,我就是250,嘿嘿嘿,如果分数大于250,就输出,我就是我,颜色不一样的烟火,如果分数小于250,就输出你连二傻子都不如.
// int a;
// printf("用户输入分数");
// scanf("%d",&a);
// if(a==250){
// printf("我就是250,嘿嘿嘿");
// }
// else if(a>250){
// printf("我就是我,颜色不一样的烟火");
// }
// else if(a<250){
// printf("你连二傻子都不如");
// }
//
//提示输入一个成绩如果 等于100分就输出 宝贝真棒!!么么哒,
//如果不等于100 就输出 看法宝!!!啪啪啪
// int a;
// printf("输入一个成绩");
// scanf("%d",&a);
// if (a==100) {
// printf("宝贝真棒!!么么哒");
// }
// else if(a!=100){
// printf("看法宝!!!啪啪啪");
// }
//输入一个钱数,如果小于100,就输出连100块都不给我,如果大于100就输出,肥皂已备好!!
// int a;
// printf("输入一个钱数");
// scanf("%d",&a);
// if(a<100){
// printf("连100块都不给我");
// }
// else if(a>100){
// printf("肥皂已备好!!");
// }
//如果在if后边()加了 ; 代表的是我们if语句结束,和我们下边的{ }花括号内的内容没有任何关系,不管条件表达式成立与否它都会执行
// if (1){
// printf("Hello!!\n");
// }
////
// char a;
// printf("请输入一个字符");
// scanf("%c",&a);
// if(a=='m'){
// printf("男性");
// }
/*输⼊入⼀一个年份,判断该年份是否是
闰年
?如果是闰年,则输出该
年是闰年,否则输出该年不是闰年。
满⾜足闰年的条件
1. 能被400整除。(如2000年是闰年,1900年不是闰年)
2.能被4整除,但是不能被100整除。(如2004年就是闰年,
2010年不是闰年)
*/
// //提示用户输入年份
// printf("输⼊一个年份");
// //定义一个变量year
// int year = 0;
// //输入年份
// scanf("%d",&year);
//
// if((year%400==0)||(year%4==0&&year%100!=0)){
// printf("该年分是闰年");
// }else{
// printf("该年分不是闰年");
// }
//
//请输入两个数字,如果a>b那么就输出a,如果a<b那么就输出b
// printf("请输入两个数字");
// //定义两个变量
// int a,b;
// //输入scanf函数
// scanf("%d,%d",&a,&b);
// //进行比较
// if(a>b){
// printf("%d",a);
// }else if(a<b){
// printf("%d",b);
// }
//
//
#pragma mark--条件运算符--
/*
//格式 ? :
条件表达式 ? 表达式1 : 表达式2
如果条件表达式为真 ,那么我们返回的值表达式1的值
如果条件表达式为假 那么我们返回的是表达式2的值
*/
/*
int a = 8;
int b = 6;
// 8<6?8:6
int c = a<b?a:b;
printf("c = %d\n",c);
*/
//求三个数的最大值
// int a = 0,b = 0,c = 0;
// int d = 0;
// printf("请输入三个数\n");
// scanf("%d,%d,%d",&a,&b,&c);
// //先求出a,b的最大值
// d = a>b?a:b;
// //在让我们两个求出的最大值和第三个数进行比较
// d = d>c?d:c;
// printf("d = %d\n",d);
//
// int a = 8;
// int b = 7;
// int c = 6;
// int d = ((a>b?a:b)>c?(a>b?a:b):c);
// printf("%d",d);
//如果容控制台输入一个成绩,如果成绩在80-100之间,是输出优秀,如果在60-80,输出的中等,否则输出不及格.
//
// printf("输入一个成绩");
// int a;
// scanf("%d",&a);
// if(a>=80&&a<=100){
// printf("优秀");
// }else if(a>=60&&a<80){
// printf("中等");
// }else if(a<60){
// printf("不及格");
// }
//
// 从键盘输⼊入⼀一个字符,
// 如果是数字 打印 this is digital,
// 如果是大写字母 打印 this is capital letter,
// 如果是 小写字母 打印 this is letter,
// 如果是其他字符 打印 other。
/* printf("请输入一个字符");
char a;
scanf("%c",&a);
if(a>=48&&a<=57){
printf("this is digital\n");
}else if(a>=65&&a<=90){
printf("this is capital letter");
}else if(a>=97&&a<122){
printf("this is letter");
}else{
printf("other");
}
*/
/*
switch
格式
Switch /(整型表达式)
{
case 值1:
语句1;
printf("...");
break;
}
case 值2:
{
语句2;printf(".....");
break;
}
....
default:
{
语句n;
break;
}
}
break 用在switch...case中 用于解说某个case分支,然后执行switch之外的语句.
从控制台输⼊入1~4,对应打出春夏秋冬的英⽂文词
*/
//首先定义个 整型变量
// int a = 0;
// printf("请选择季节:1(春季)2(夏季)3(秋季)4(冬季)\n");
// scanf("%d",&a);
// switch(a){
// case 1:{
// printf("Spring\n");break;
// }
// case 2:{
// printf("summer\n");break;
// }
// case 3:{
// printf("autumn\n");break;
// }
// case 4:{
// printf("winter\n");break;
// }
// default:{
// printf("这是什么鬼节日!!\n");break;
// }
//
//
// }
//Switch:用于我们知道范围的一个判断语句,而且用于判断较少的时候
//如果判定较多时我们使用if;(不知道范围使用)--且只知道具体范围
//
// int a = 0;
// printf("请选择月份,查看天数\n");
// scanf("%d",&a);
// switch(a){
// case 1:
// case 3:
// case 5:
// case 7:
// case 8:
// case 10:
// case 12:{
// printf("31天\n");
// break;
// }
// case 4:
// case 6:
// case 9:
// case 11:{
// printf("30天\n");
// break;
// }
// case 2:{
// printf("28天\n");
// break;
// }
//
// }
/*枚举是⼀一种数据类型,是将⼈人能够识别的标识符和
计算机能识别数字结合起来。
作⽤用:
罗列出所有的可能性,每⼀一种可能都是⼀一个枚举值,每⼀一个枚举值都对应⼀一个整数值
*/
/* //格式:
Enum:enum 枚举名 {枚举值表};
目的是提高我们程序的可读性,
作用:将人能够是别的标示符和计算机能识别数字结合起来
*/
//定义一个枚举
//枚举 默认从零开始
enum JiJie
{
Spring,
summer,
full,//full = 1这样写是错误的,因为会和我们上边的summer产生冲突(spring)默认为零 summer为1,所以冲突
winter
};
//输入对应的数字,打印出对应的季节
printf("请输入数字:\n");
enum JiJie jijie = 0;
scanf("%d",&jijie);
switch (jijie){
case Spring:{
printf("春天穿裤衩!!");break;
}
case summer:{
printf("夏天穿棉袄!!");break;
}
case full :{
printf("秋天穿秋裤!!");break;
}
case winter :{
printf("冬天吃冰棍!!");break;
}
default:
{
printf("这叫什么事儿!!");break;
}
}
return 0;
}