//断点:调试的时候使用程序执行到这个位置就会暂停
//if语句就是假设这个表达式是否成立,如果
/*如果表达式可以成立(如果表达式是正确的)就执行功能代码
如果没有成立(假的)就不理会
if(表达式){
功能代码
}*/
//
// main.c
// NO-2分支结构
//
// Created by泡泡 on 15/11/4.
// Copyright © 2015年泡泡. All rights reserved.
//
#include<stdio.h>
//main函数是程序的入口一个程序只有一个main函数
int main(intargc,const char* argv[]) {
//断点:调试的时候使用程序执行到这个位置就会暂停
// insertcode here...
#pragma mark-----------课堂练习一(父亲年龄)--------------
//输入你父亲的年龄如果大于等于 40就是个好父亲
// if(表达式){
// 功能代码
// }
int fatherAge = 0;
printf("输入你父亲的年龄:");
scanf("%d",&fatherAge);
// 1.条件判断 < > <= >= == !=关系运算符计算结果都是真(1)或者假(0)
// int result = fatherAge >= 40;
// printf("是不是大等于40岁?%d\n",result);
// *****当只有两个条件可以选择的时候优先使用if语句
// 判断结果是不是1(是不是真的)
// 如果是真的就进入花括号内执行里边的代码
// 如果不是真的就不理他(跳过)
fatherAge >=40==1
if(result == 1)
{ printf("你父亲倍儿棒!\n");
}
if(fatherAge >= 40)
{ printf("你父亲倍儿棒!\n");
}
当不满足if语句里面的条件的时候让他执行另外一个分支可以使用else(否则另外)
if(fatherAge >= 40)
{ printf("你父亲倍儿棒!\n");
}
else
{ printf("你父亲倍倍儿棒!\n");
}
#pragma mark----------课堂练习二(上课人数)----------
// 如果上课人数大于60人学习氛围忒好否则输出没来的去当葫芦娃了
// scanf("%d",&num);//跟上一个scanf隔开格式化字符串前面加个字符
int studentsNum = 0;
printf("输入上课人数:");
scanf("%d",&studentsNum);
if (studentsNum >60)
{
printf("学习氛围忒好!\n");
}
else
{
printf("没来的去当葫芦娃了!!\n");
}
char *message;//char * 字符串(一段文字)
if (studentsNum >60)
{
message ="学习氛围忒好!";
}
else
{
message ="没来的去当葫芦娃了!!";
}
printf("%s\n",message);
#pragma mark------------三目运算--------------
// 如果1.只有两个条件可以选择
// 2.并且有两个可能发生的结果
// 3.再并且分支结构里面没有嵌套使用其他内容
// 可以选择使用三目运算
// 三目运算的公式:表达式?第一个结果:第二个结果:
// 问电脑??这个表达式是不是真的
// 如果是真的选择第一个结果
// 如果是假的选择第二个结果
int a;
printf("shurushuzi\n");
scanf("%d",&a);
// char *sss;
// if (a<33)
// {
// sss = "是滴";
// }
// else
// {
// sss = "FP";
// }
// printf("%d\n",sss);
char *r = a<33?"是滴":"FP";
printf("%s\n",r);
#pragma mark-------------枚举-------------
// 枚举列举一个一个按顺序罗列出来
// enum默认从0开始按顺序罗列出来当有一个元素值发生改变如(0、1、(2)、3)
// 突然2变成3(0、1、3、4)
// 用字符串来表示这些数字
// 好处:1.很直观了解这个数字的含义
// 2.当改变字符串对应的数字的时候不会影响到程序里面的代码
/* enum 枚举的名字
{枚举的例子,//(*****使用逗号隔开)默认从0开始
枚举的例子= 5,当这个元素的值变成5下一个元素默认是6
枚举的例子 // (*****最后一个元素没有逗号)(6)
}*/
/* enumType
{
Red,
Orage = 100,
Yellow,
Green
}; */
// 公式:enum枚举名变量名=枚举值;
/* enumType type = Yellow;
printf("%d\n",type);*/
/*枚举公式之二:
typedef用来替代(enum枚举的名字)
typedef enum枚举的名字{
枚举的例子,//(*****使用逗号隔开)默认从0开始
枚举的例子= 5,当这个元素的值变成5下一个元素默认是6
枚举的例子 // (*****最后一个元素没有逗号)(6)
}替代的名字;
*/
typedef enum Type
{
Red,
Orange = 5,
Yellow,
Green
}Color;
Colorcolor = Red;
// 什么情况下使用枚举
// 当某些数字具有一定意义的时候可以使用枚举直观的体现这些数字的意义
// 在编程过程中有可能修改需求把具有特定意义的数字修改成别的数字防止修改大量代码节省工作量
typedef enumLoginType{
Acc = 10,
QQ,
Sina,
WeiXin
}LoginType;
LoginType type = Acc;
type =QQ;
type =WeiXin;
type = Sina//变量只认为
LoginType type;
if (type == Acc) {
// djfhglskdh
}
if (type == QQ) {
// sdfjhgl
}
if (type == Sina) {
printf("Sina登录");
}
if (type == WeiXin) {
printf("WeiXin登录");
}
// switch:当有多个条件可以提供选择的时候可以使用switch来代替 if
/*
当条件变量满足第某个条件的时候会跳到对应的条件里边去执行
代码->遇到(break)会跳出switch继续执行
switch常与枚举配合使用
switch (条件变量) {
case条件1:
具体代码
break;
case条件2:
具体代码
break;
case条件3:
具体代码
break;
default:
break;
}
// 注意(◎-◎;):每一个分支条件后面必须跟一个break来跳出 (*****)如果没有跳出会继续往下执行
// default:默认任何条件都不满足的时候 进入default
*/
typedef enumLoginType{
Acc = 10,
QQ,
Sina,
WeiXin
}LoginType;
// 定义LoginType这个枚举放的变量
LoginType type;
// 输入一个数字来判断用户使用哪种方式登录
scanf("%d",&type);
switch (type)//type 到底是多少
{
case Acc:
printf("帐号登陆\n");
break;
case QQ:
printf("帐号登陆\n");
break;
case Sina:
printf("帐号登陆\n");
break;
case WeiXin:
printf("帐号登陆\n");
break;
default:
printf("没有这种登陆方式!咦~\n");
break;
}
return 0;
}