#import <Foundation/Foundation.h>
// 宏定义 吧工程中 所有的WL 全部提换成 10
// 是替换的过程 千万结束时不要加分号
#define WL 10
int main(int argc, const char * argv[]) {
// int a = 0;
// float b = 0;
// printf("请输入一个整数,再输入一个浮点型:\n");
// scanf("%d,%f",&a,&b);
// float result = a + b;
// float sub = a - b;
// float mul = a * b;
// float div = a / b;
// printtf("result:%f\n,sub:%f\n,mul:%f\n,div:%f\n",result,sub,mul,div);
// Bool是一种数据类型
// 它只有0和1两个值
// 系统通过预编译 吧0编译成NO 吧1编译成YES
// 所以咱们再工程中一般只看见YES和NO
// bools是C语言中使用的
// BOOL是OC中使用的
// 声明一个BOOL变量 初值为NO
// BOOL b = NO;
// printf("%d",b);
// 定义两个整型变量 比较大小 打印比较结果
// int number1 = 5;
// int number2 = 10;
// 关系运算符 > >= < <= == !=
// 如果成立的话 返回YES也就是1 反之NO也就是0
// 关系运算符优先级
// ( > >= < <= 同级关系 ) 大于 (== !=)
// BOOL result = number1 < number2;
// printf("%d",result);
// 注意 == 是判断两边是否相等 是爽等号
// 练习 1 == 3 > 1 相当与 1 == (3 > 1)
// 声明BOOL变量接收 返回结果
// BOOL result1 = 1 == 3 > 1;
// printf("%d",result1);
//
// 逻辑运算符 && || !
// && 一假则假(必须两边 全是真的 整个逻辑表达式才是真的)
// || 一真则真(必须两边全是假的 整个逻辑表达式才是假的)
// ! 对结果进行取反 非真即假
// 终极口诀: 非零即真
// 逻辑与短路现象
// 逻辑与 如果前面的为假 那么后面的就不执行了 这就是短路现象
// int a = 5;
// int b = 10;
// BOOL result = a > b && a++;
// 逻辑或的短路现象
// 逻辑或 如果前面的为真 整个表达试就为真 那么后面的就不去执行了 这就是短路现象
// int a = 5;
// int b = 10;
// BOOL result = a > b || a++;
// 程序的三种结构
// 1.顺序结构
// 2.分支结构(重点)通过一个判断 来选择执行那个语句
// 3.循环结构
// if 语句 写法
/*
if(判断语句){
要执行语句
}
如果判断语句为真 就执行打括号中的语句
如果判断语句为假 就跳过大括号中的语句(不执行)
*/
// 需求: 定义两个整型变量 如果a>b的话 打印 a比b大
// int a = 10;
// int b = 5;
// if(a > b){
// printf("打印");
// }
//
// 练习: 控制台 输入一个字符 如果 输入的是M,则输出男性 否则声明都不输出
// char a = 0;
// printf("请输入一个字符");
// scanf("%c",&a);
// if (a == 'm') {
// printf("男性");
// }
// 练习2: 如果从控制台 输入一个字符 如果 输入的是M,则输出男性,否则输出女性, 那怎么实现哪?
// char a = 0;
// printf("请输入一个字符");
// scanf("%c",&a);
// if (a == 'm') {
// printf("男性");
// }
// if (a !='m') {
// printf("女性");
// }
// if语句的第二种形式
/*
if(判断条件){
语句1;
}else{
语句2;
}
不管if语句那种形式 首先要看的 就是判断条件
条件成立 执行语句1
条件不成立 执行else后面打括号的部分 语句2
*/
// 练习2: 如果从控制台 输入一个字符 如果 输入的是M,则输出男性,否则输出女性, 那怎么实现哪?
// char c = 0;
// printf("请输入一个字符");
// scanf("%c",&c);
// if (c == 'm') {
// printf("男性");
// } else {
// printf("女性");
// }
// 如果条件成立 就执行条件后紧跟着的大括号
// 如果条件不成立 就执行else后面的大括号
// 终极口诀: 分支结构中 只执行一个分支中的语句
// int year = 0;
// printf("请输入一个年份");
// scanf("%d",&year);
//
// // year % 4 == 0 && year & 100 != 0
// // ||year % 400 == 0
//
// // 能被几整除就相当于对几取余等于0
//
// // 定义一个BOOl类型变量 来接受一下
// BOOL result1 =( year % 4 == 0 && year% 100 !=0);
// BOOL result2 = (year % 400 ==0);
// if (result1 || result2) {
// printf("闰年");
// } else {
// printf("不是闰年");
// }
// if (( year % 400 == 0 ) || (year / 4 == 0) && ( year / 100 != 0 ) ) {
// printf("闰年");
// } else {
// printf("不是闰年");
// }
// if语句的第三种形式(级联式)
/*
if(判断条件1){
语句1;
}else if (判断条件2){
语句2;
}else if (判断条件3){
语句3;
}else {
语句4
}
*/
// 首先先判断条件1
// 不成立 不执行语句1
// 继续判断条件2
// 不成立 不执行语句2......
// 如果前面 全不成立 else后面又没有判断条件
// 那么执行 else后面大括号中的语句
// 从键盘输个字符,如果是数字打印this is digital,如果是写字,打印this is capital letter,如果是写字,打印this is letter,如果是其他字符,打印other。
// 实际上 输入一个字符 就 相当于 输入一个0-255的数
//
// char c = '0';
// printf("请输入一个字符\n");
// scanf("%c",&c);
// if (c >= '0' && c <= '9') {
// printf("是数字");
// } else if(c >= 'A' && c<='Z'){
// printf("是大写字母");
// } else if(c >='a' && c <='z'){
// printf("是小写字母");
//
// } else{
//
// printf("是其他");
// }
//
// 条件表达式 (三目运算符)
// 判断条件 ? 返回值1 : 返回值2;
// 如果判断条件成立 就返回返回值1 反正返回返回值2
// 需求: 定义两个整型变量 打印 比较大的一个(利用条件表达式)
// int a =5;
// int b =10;
// int max = a > b ? a : b;
// printf("max = %d",max);
// 枚举类型
/*
定义枚举类型
enum 枚举类型名字{
枚举值的列表
};
// 需求: 创建一个枚举 枚举的值分别为 春夏秋冬
*/
// 枚举的值 默认是0开始 依次递增
// 也可以 指定枚举的值
// enum season {
// spring, // 注意 枚举值要用逗号隔开
// summer,
// autumn,
// winter
//
// }
// switch语句
/*
switch (整型表达式(数字或者字符)) {
case 值1(数字或者字符):
执行的语句1
break;//跳出整个switch语句
default:
如果前面的case都没有匹配上 就执行default后面的语句
break;
}
*/
// 定义一个枚举 提高代码的阅读性
// 1.default可以省去
// 2.default位置 可以变 只要所以case没有匹配成功,就会去执行default后面语句
enum season {
// 枚举的值 默认是从0开始
spring = 1,
summer,
automn,
winter
};
return 0;