在C语言中,处理这种选择场景的语法叫做条件语句,条件语句有两种形式:if else和switch case。其中判断情况的条件可以罗列更为详细具体,选择情况可以根据需要叠加的语法是if else。当然switch case很好用,不过应用场景是判断情况比较多的时候,可以提高代码质量。
那么,我们来聊下怎么用,书写标准:
if (表达式){
语句块1
}else{
语句块2
}
注意啦,上面是语法规范,怎么用具体的细节在下面分析:
1. 语句块:当有若干条语句时,必须用{…}括起来。
2. 表达式:
if语句的表达式一般情况下为逻辑表达式或关系表达式。
如:
if( a == b && x == y ) {
printf(“a=b,x=y”);
}else{
printf(“a!=b, x!=y”);
}
也可以是任意类型(包括整型、实型、字符型、指针类型),表示“真”和“假”的逻辑情况。
例如:if(‘a’) printf(“%d”,’a’);
if(‘3’) printf(“OK!”);
注意:
数值在if里只有“非零”与“零”的用法;
请区分if(x=1)与if(x= =1)的不同,=是赋值符号, ==是逻辑判断符号。
当然规范的形式只适用用于条件逻辑比较单一的情况,以下是一些根据实际情况做出的一些变形形式。
1. 简化形式
if(表达式) {
语句块
}
例如:
if( x>y ) {
printf(“%d”,x);
}
2. 阶梯形式
if(表达式1) 语句块1
else if(表达式2) 语句块2
else if(表达式3) 语句块3
else if(表达式4) 语句块4
...
else 语句块n
例如:
int main(int argc, const char *argv[])
{
int a;
scanf("%d", &a);
if( a<0 ){
printf("a < 0!\n");
}else if( a == 0){
printf("a == 0!\n");
}else{
printf("(a > 0! \n");
}
return 0;
}
3. 嵌套形式
if(表达式){
if(表达式){ 语句块1 }
else{ 语句块2 }
}else{
if(表达式){ 语句块3 }
else{ 语句块4 }
}
例如:
int main(int argc, const char *argv[])
{
int a , b, c;
int max;
scanf("%d%d%d", &a, &b, &c);
if( a >= b ) {
max = a;
if( max < c ) {
max = c;
}
} else {
max = b;
if( max < c ) {
max = c;
}
}
putchar(10);
return 0;
}
这里再提一种特殊情况:
if(表达式){
语句块1;
}
if(表达式){
语句块2
}
if(表达式){
语句块3;
}
...
else{
表达式4;
}
1.运行结构
C语言中支持的三种程序运行结构
顺序结构,选择结构,循环结构
顺序:程序按顺序执行
选择结构:依据条件是否满足,有选择地执行相应功能
循环结构:看情况多次执行代码
顺序没什么好说的,毕竟之前所敲出来的都属于这一类
接下来我们看选择结构
2.选择结构·if语句
分为这么几类
单行语句\\不咋用
多行语句\\常用
多条件语句
嵌套语句*\\哪都能用
那么就先开始单行语句
1.单行if语句

啊对,就是你看到的这个
其实对我而言这并不是一个完整的if
只有if没有else是什么东东
如果只有if的话,那条件我也不需要通过if来判断输出
只是单纯的比较的话用前面的运算符文章就行
比如直接cout << (a > b) <<endl;输出就行
不过啊,if最大的好处就是能输出文字
做小游戏,cout直接比较输出的是1 0(true false)
2.多行if语句

这就是完全体,另外各位可以看看里面我写的关于cout的事
以下是代码,和上面单行的一致
//if语句:作用是执行满足‘条件’的语句
//三种形式:单行,多行,多条件
//if语句格式(单行多行无所谓,一般是使用多行)
//单行就是把多行里面的else去掉
//if (条件){条件满足执行的语句}//小大括号
int a = 0;
cout << "请输入你心里想的数字" << endl;
//输入数字
cin >> a;
//打印输入数字
cout << "你心里想的数字是 = " << a << endl;
//判断数字是否大于100
if (a >= 100) {
cout << "你怎么知道我心里想的是这个的?" << endl;
}//大于则在屏幕上输出‘你怎么知道我心里想的是这个的?’
else {
cout << "你猜我是不是认为你是个傻瓜" << endl;
}
//若不满足则输出‘你猜我是不是认为你是个傻瓜’
/*由上面的演示可知:若不满足格式为else{输出内容}
此外
我补充一点
cout << 这个东东是打印,在我使用了using的那个语句后
每次在后面跟上endl会换行比较好看
不是printf不行,而是cout我现在试着顺手*/
3.多条件if语句

如上图,这个不是重点,只是else if来回重复罢了
以下是代码
//多条件if语句
//格式
//if(条件1){条件1满足执行语句}
// else if(条件2){条件2执行语句}。。。
// else{条件都不满足执行语句}
int b = 0;
cout << "请输入一个合适的数字" << endl;
cin >> b;
cout << "你输入的数字是 = " << b << endl;
if ( b < 100) {
cout << "感觉你心里不是很敢往大了想" << endl;
}
else if ( b < 1000) {
cout << "敢往大想了,不戳(-v-)``" << endl;
}
else if ( b < 10000) {
cout << "感觉你想的有点开始过头了……" << endl;
}
else {
cout << "差不多得了奥ヽ(-Д-)" << endl;
}
4.嵌套if

这个才是重点,我瞅了瞅
不管是单行,还是多行,多条件,嵌套都可以进去搞套娃
你可能看着有点抽象没事,先把代码记一记
我这里还有一个题来实操
以下是代码
//以上就先这样,然后开始嵌套if,就是在往下细分
//格式
// if (条件){满足条件输出的语句
// if(满足上一条件后的第二条件){满足后输出} }
//以下是例子
float c = 0;
cout << "又见面啦,再选一个数字吧" << endl;
cin >> c;
cout << "你选中的数字是 = " << c << endl;
if (c < 10) {
cout << "那么这次我们来比小吧" << endl;
if (c < 0.5) {
cout << "恭喜,你猜中了我想的范围" << endl;
}
else {
cout << "离成功一步之遥,加油" << endl;
}//嵌套函数也是可以完整进行多行if的,不过别太离谱就行
}
else if (c < 100) {
cout << "哦呀,你这想的有点大了哦" << endl;
}
else {
cout << "你这些数都太大了呀,再试试" << endl;
}
//以上就是嵌套函数,看起来是不是已经初具雏形了?
这里是习题的分割线
//那么来一个我看见的练习题吧
/*制作判断
输入三个数作为三只小猪的体重,然后进行比较,最后输出最重的那个*/
这里是答案的分割线,先自己尝试一下哦
int pig1 = 0;
int pig2 = 0;
int pig3 = 0;
string a9 = "qqq";
cout << "来吧,比比哪个猪是最重的" << endl;
cin >> pig1;
cout << "你选择的嘉宾猪1号重 = " << pig1 << "kg" << endl;
cin >> pig2;
cout << "你选择的嘉宾猪2号重 = " << pig2 << "kg" << endl;
cin >> pig3;
cout << "你选择的嘉宾猪3号重 = " << pig3 << "kg" << endl;
cout << "现在开始比较,请输入start" << endl;
cout << "另外,虽然比较随性,但猪不应该重的跟个核蛋一样" << endl;
cin >> a9;
cout << "那么," << a9 << "!!!" << endl;
if (pig1 > pig2) {
if (pig1 > pig3) {
cout << "让我们高兴的宣布嘉宾猪1号上了今晚的餐桌!!" << endl;
}
else {
cout << "阿偶,看来3号夺得了冠军,那它就是今天的晚餐了" << endl;
}
}
else {
if (pig2 > pig3) {
cout << "让我们高兴的宣布嘉宾猪2号上了今晚的餐桌!!" << endl;
}
else {
cout << "阿偶,看来3号夺得了冠军,那它就是今天的晚餐了" << endl;
}
}
//这就是一个初步的小游戏了不是吗


3448

被折叠的 条评论
为什么被折叠?



