今天的练习比较多,希望大家多多动手哦!!!
if 、 switch 实现选择结构,for 、 while 、 do while 实现C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构循环结构
1.if语句
if...else..语法形式
if(表达式)
语句1
else
语句2
if语句执行流程(在C语⾔中,0为假,⾮0表⽰真)
例子:成年了,可以谈恋爱了。
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 18)
printf("成年了,可以谈恋爱");
else
printf("未成年,不能谈恋爱");
return 0;
}
那如果我们要if语句同时控制2条语句,那就要使⽤{} 将代码括起来, else 后也可以跟上⼤括号。
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
嵌套if
if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。
输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:⾮正数
#include<stdio.h>
int main()
{
int num=0;
scanf("%d",&num);
if(num>0)
{
if(num%2==0)
printf("偶数\n");
else
printf("奇数\n");
}
else
{
printf("非正数");
}
return 0;
}
判断输入的值为奇数或偶数时,就构成了嵌套if语句,有了嵌套if语句,就可以完成更多复杂逻辑的判断。
练习一下吧:
输⼊⼀个⼈的年龄
如果年龄 <18 岁,打印 " 少年 "
如果年龄在 18 岁⾄ 44 岁打印 " ⻘年 "
如果年龄在 45 岁⾄ 59 岁打印 " 中⽼年 "
如果年龄在 60 岁⾄ 89 岁打印 " ⽼年 "
如果 90 岁以上打印 " ⽼寿星 "
//方法1
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("少年");
else
{
if (age <= 44)
printf("青年");
else
{
if (age <= 59)
printf("中老年");
else
{
if (age <= 89)
printf("老年");
else
printf("老寿星");
}
}
}
return 0;
}
//方法2
#include<stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("少年");
else if (age <= 44)
printf("青年");
else if (age <= 59)
printf("中老年");
else if (age <= 89)
printf("中老年");
else if(age > 90)
printf("老寿星");
return 0;
}
2.关系操作符
C语⾔⽤于⽐较的表达式,称为“关系表达式”,⾥⾯使⽤的运算符就称 为“关系运算符”,主要有下⾯6个。
> 大于 <小于 >=大于等于 <=小于等于 ==相等 !=不相等
注意:1.相等运算符 == 与赋值运算符 = 是两个不⼀样的运算符,不要混淆。有时候,可能会不⼩⼼写 出下⾯的代码,它可以运⾏,但很容易出现意料之外的结果。(因为我就很容易出错,在这提个醒儿)2.多个关系运算符不宜连⽤
3.条件操作符
条件操作符是三目操作符。
exp1?exp2:exp3
条件操作符的计算逻辑是:如果 exp1 为假, exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果 exp3 计算,计算的结果是整个表达式的结果。
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
if (a > 5)
b = 3;
else
b = -3;
printf("%d\n", b);
return 0;
}
//将以上函数改为三目操作符
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d", &a);
b = a > 5 ? 3 : -3;
printf("%d", b);
return 0;
}
//练习2利用条件操作符比较两数大小
#include<stdio.h>
int main()
{
int a, b;
int max;
scanf("%d %d", &a, &b);
max = a > b ? a : b;
printf("%d", max);
return 0;
}
4.逻辑操作符
! :逻辑取反运算符(改变单个表达式的真假)。
&& :与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
|| :或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
练习:闰年的判断
1.能被4整除并且不能被100整除是闰年
2. 能被400整除是闰年
#include<stdio.h>
int main()
{
int year = 0;
scanf("%d", &year);
if (((year % 4 == 0 )&&( year % 100 != 0)) || (year % 400 == 0))
printf("%d为闰年", year);
else
printf("%d不是闰年",year);
return 0;
}
短路:C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。
对于&&操作符来说,左边操作数的结果是0的时候(即为假),右边操作数就不再执⾏
|| 操作符的左操作数的结果不为0时(即为真),就⽆需执⾏右操作
像这种仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进⾏计算的运算称为短 路求值。
今天就先到这里吧,大家要多加练习哦!if以及一些操作符的用法真的很重要,需要打好基础才能进行接下来的学习。
这些练习希望大家能不看答案自主完成,OK!!开始战斗吧!!