一、学习目标
- 了解逻辑判断的概念
- 了解if语句的使用方法
- 了解switch语句的使用方法
- 了解逻辑运算符的使用方法
if语句在C语言中用于流程控制,也就是在程序运行时,根据满足的条件来选择运行不同的代码块。流程控制就像你计划明早天气如果晴朗就去跑步,假设天气变差,下雨了就不去了。这就是不同的条件进行不同的选择。2.1 if语句的使用
if语句在C语言中用于判断条件是否成立从而运行一部分代码,我们使用一个简单的例子介绍if语句的使用方法:
#include<stdio.h>void main(){
int a=1;
if(a==1){
printf("变量a的值等于1");
} }
以上代码创建了一个变量a赋值为1。之后使用了if语句判断a是否等于1,判断正确则执行语句printf("变量a的值等于1");
,条件判断不成立则不执行 printf("变量a的值等于1");
。
从以上示例可以看出if语句判断一个条件,这个条件编写于if之后的圆括号内;以上示例的条件为a==1;在C语言中判断两个值是否相等使用两个等于号 ==,在条件的圆括号后使用一对花括号{},在花括号内编写条件判断正确后需要执行的代码。运行结果如下:
我们修改一下a的值改为2,查看是否会执行 printf("变量a的值等于1");
。修改后的代码如下:
#include<stdio.h>void main(){
int a=2;
if(a==1){
printf("变量a的值等于1");
} }
运行结果如下:
从结果得知并没有运行代码 printf("变量a的值等于1");
。
那如何使if的条件判断不成立时有一个提示?这时可以使用else语句,else语句在条件不成立时将会执行else语句内的代码,else语句的内容也是在花括号内编写,不过这个花括号是在else这个关键字(关键字指C语言中已有特殊功能的标志,如int、if、float等)后代码如下:
#include<stdio.h>void main(){
int a=2;
if(a==1){
printf("变量a的值等于1");
} else{
printf("变量a的值不等于1");
}}
以上代码在if语句的花括号后“无缝连接”了一个else关键字。在else关键字后有一对花括号,在该花括号内编写a不等于1时所需要的提示语句即可。
运行结果如下:
如果我想a的值等于1时输出“哈哈哈”,a等于2时输出“嘿嘿嘿”,a等于3时输出“呀呀呀”,a等于其它值时输出“我都没猜对”;以上需求可以使用if…elseif语句实现代码如下:
#include<stdio.h>void main(){
int a=2;
if(a==1){
printf("哈哈哈");
} else if(a==2){
printf("嘿嘿嘿");
} else if(a==3){
printf("呀呀呀");
}else{
printf("我都没猜对");
} }
以上代码在if之后的else关键字后添加了if(注意if前面有个空格),随后一个圆括号,圆括号内编写其它条件,满足则会执行当前else if 语句的花括号内的代码,当所有条件都不对的时候,执行else语句,也是在最末位的语句。
运行结果如下:
以上代码还可以改一下,让我们在都没猜对的值的情况下输出值代码如下:
#include<stdio.h>void main(){
int a=22;
if(a==1){
printf("哈哈哈");
} else if(a==2){
printf("嘿嘿嘿");
} else if(a==3){
printf("呀呀呀");
}else{
printf("我都没猜对,其实a的值%d",a);
} }
结果如下:
2.2 if语句判断多个条件
以上学习的if只能判断一个条件,若我需要判断多个条件该怎么办?这时可以使用逻辑运算符。例如当a等于1或2时表示天气下雨和刮风,我则不去跑步,当a等于3或者4时则表示需要上学和补课,当a等于其它值是则可以去跑步。首先我们使用简单的if语句了解一下逻辑运算符。代码如下:
#include<stdio.h>void main(){
int a=1;
if(a==1||a==2){
printf("天气正在下雨或刮风");
}
以上代码着重关注if语句的条件 a==1||a==2
,其中使用的“||”为逻辑运算符“或”运算。或运算表示两个表达式(表达式指是由数字、算符、数字分组符号等可以求得一个值的组合)的值有一个正确,那么或运算符(||)左右两边整体的值则为正确。当前或运算符左边为a1,右边为a2,只要满足其中一个则会执行 printf("天气正在下雨或刮风");
。运行结果如下:
修改一下代码完成以上所说的需求“a等于1或2时表示天气下雨和刮风,我则不去跑步,当a等于3或者4时则表示需要上学和补课,当a等于其它值是则可以去跑步。”,代码如下:
#include<stdio.h>void main(){
int a=4;
if(a==1||a==2){
printf("天气正在下雨或刮风");
} else if(a==3||a==4){
printf("我要去上学或者补课");
}else{
printf("我要去跑步");
}
}
结果如下:
2.3 逻辑运算符与&&
以上我们介绍了逻辑运算符或(||),使用或运算符只需要左右两边有一个表达式正确则左右两边整体的值为正确。在C语言中正确我们可以使用一个标识表示。这个标识为TRUE。这一小节我们将学习需要表达式两边都正确整体的值才为正确的运算符“与”,与运算使用运算符&&。我们修改上一小节的程序,修改后代码如下:
#include<stdio.h>void main(){
int a=4;
if(a==1&&a<5){
printf("天气正在下雨或刮风");
} else if(a==3||a==4){
printf("我要去上学或者补课");
}else{
printf("我要去跑步");
}}
以上代码if后的条件为a==1&&a<5
,中间的运算符更改为了&&,&&表示左右两边表达式均正确,当前运算才为正确。很明显a等于,不满足第一个条件,满足 a==3||a==4
条件,则会执行代码printf("我要去上学或者补课");
。
运行结果如下:
我们修改a的值为1,则会执行代码printf("天气正在下雨或刮风");
。(虽然a等于1的时候肯定小于5,这里只是作为演示)代码如下:
#include<stdio.h>void main(){
int a=1;
if(a==1&&a<5){
printf("天气正在下雨或刮风");
} else if(a==3||a==4){
printf("我要去上学或者补课");
}else{
printf("我要去跑步");
}
}
结果如下:
三、了解switch语句的使用方法
switch语句与if作用相同,均是用与做流程控制,也和if语句一样需要使用条件进行控制。
学习了if语句后switch的学习相对比较简单,先列出一个格式说明:
switch(变量){
case 值:
//代码内容
break;//break是跳出作用,不像if只执行一处,如果不加break会执行下一句
case 值:
//代码内容
break;//break是跳出作用,不像if只执行一处,如果不加break会执行下一句
case 值:
//代码内容
break;//break是跳出作用,不像if只执行一处,如果不加break会执行下一句
default:
//代码内容
}
switch是关键字,后接一个圆括号,圆括号内传入一个变量;在switch圆括号后使用一对花括号,花括号内为switch语句的内容。使用case关键字后接一个值,假设switch传入的变量值为1,则跳转到case 1:后执行冒号后的代码,在代码的最后一行使用break关键字跳出。(break的作用为跳出)如不加break则会执行按顺序往下的case内容。先看一示例代码:
#include<stdio.h>void main() {
int a=1;
switch(a){
case 1:
printf("选择的是夫妻肺片");
break;
case 2:
printf("选择的是肠粉");
break;
case 3:
printf("选择的是口水虾");
break;
case 4:
printf("选择的是濑尿虾");
break;
case 5:
printf("选择的是炸蝗虫");
break;
default:
printf("没有这个菜单");
}}
以上代码中a的值等于1,switch传入一个a作为条件,a为1则跳转到case 1处执行冒号后的代码printf("选择的是夫妻肺片");
。
运行结果如下:
我们尝试在case 1与case 2语句块中删除最后一条语句 break;
看看是否会继续执行下一个case 2:的内容。代码如下:
#include<stdio.h>void main() {
int a=1;
switch(a){
case 1:
printf("选择的是夫妻肺片");
case 2:
printf("选择的是肠粉");
case 3:
printf("选择的是口水虾");
break;
case 4:
printf("选择的是濑尿虾");
break;
case 5:
printf("选择的是炸蝗虫");
break;
default:
printf("没有这个菜单");
}}
结果如下:
从结果得知程序并没有跳出。由于并没有换行,我们使用\n符号可以进行换行,使运行结果更加清晰。修改代码如下:
#include<stdio.h>void main() {
int a=1;
switch(a){
case 1:
printf("选择的是夫妻肺片\n");
case 2:
printf("选择的是肠粉\n");
case 3:
printf("选择的是口水虾\n");
break;
case 4:
printf("选择的是濑尿虾\n");
break;
case 5:
printf("选择的是炸蝗虫\n");
break;
default:
printf("没有这个菜单\n");
}}
以上程序在printf中添加了\n,\n的作用是换行,输出显示时并不会输出\n。
运行结果如下:
四、总结
通过以上描述与讲解,我们了解了以下几点内容:
- 了解了if语句if…else语句以及if…elseif…语句的使用方法
- 了解switch语句的使用方法
- 了解switch语句中break的作用
- 了解了逻辑运算符或“||”用于判断条件成立1边则为正确
- 了解了逻辑运算符或“&&”用于判断条件均成立则为正确
https://mp.weixin.qq.com/s/vydk1IWlAp8t4zOJ_JGIew