今天学习的是c语言中的分支语句和循环语句_if和switch语句
目录:
一.语句和表达式的区分
二.c语言中的所有语句类型
三.c语言中的分支语句
1.if语句
2.switch语句
下面我们正式进入课题——c语言中的分支语句和循环语句_if和switch语句
一.语句和表达式的区分
语句通常需要再末尾加有';',通常不会产生数值,是程序执行的必不缺少的部分;表达式通常不会在末尾加有';',但一定会产生数值
正如上图所示表达式的主要用途就是进行计算,赋值和传参;而语句的主要用途就是进行控制流程和执行操作,看似两者差别很大,但是表达式和语句是可以相互转化的,表达式在句子末尾加上';'就是表达式语句,例如:c=a+b是一个表达式,而c=a+b;是一个表达式语句。
二.c语言中的所有语句类型
c语言中语句分为以下五大类型:1.表达式语句,2.函数调用语句,3.控制语句,4.复合语句,5.空语句。今天我们主要说的就是控制语句
空语句是仅由一个分号组成的语句,不执行任何功能:
while(a!=1);
复合语句是由{}包裹的代码块,复合语句通常被视为一条语句
if(a>=0)
{
a=10;
a=100;
}
表达式语句是进行算数运算,赋值的语句
c=a+b;
三.c语言中的分支语句
1.if语句
c语言中if语句主要有三种形式:单分支,双分支,多分支。
单分支形式:
#include <stdio.h>
int main()
{
int a=0;
if(0==a)
return 0;
}
双分支形式:
#include <stdio.h>
int main()
{
int a=0;
if(0==a)
return 0;
else
rerurn 1;
}
多分支形式:
#include <stdio.h>
int main()
{
int a=0;
if(0==a)
return 0;
else if(1==a)
return 1;
else
return 2;
}
以上三个图片就是c语言中的三种if语句的形式,其中if后面中的括号内的句子就是表达式,单分支只用了if,双分支使用了if和else,多分枝使用了if和else和if_else。
在使用if语句的同时我们也要注意:1.else是和最近的if相结合的;2.if后面如果跟随了代码块(多个语句)的话我们就应该把代码用大括号括起来,因为正常情况下一个if只能和一个语句适配;3.如果if后面的表达式的结果为真则返回‘1’,则程序执行,如果结果是假的则返回‘0’,则程序不执行
建议:1.在使用if语句的时候括号内的如果要写a==1的时候最好写为1==a这个形式,这样方便于编译器纠错。
练习:
1.判断一个数是否为奇数。
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a%2==1||a%3==0&&a!=0)
printf("a是奇数");
else
printf("a不是奇数");
return 0;
}
注意:0是偶数;在a%3时不能错误使用赋值运算符‘=’,应当使用‘==’;‘&&’的优先级高于‘||’;
2.输入1~100内的所有奇数
#include <stdio.h>
int main()
{
int a;
for(a=1;a<=100;a++)
{
if(a%2==1||a%3==0)
printf("%d\n",a);
}
return 0;
}
2.switch语句
switch语句的形式
#include <stdio.h>
int main()
{
switch(整形表达式)
{
语句项:
}
}
所谓正型表达式就是结果为整形的表达式,不能是float或者double等类型,可以是字符类型,因为字符类型可以转换为整形的ascll码值
其中语句项的形式
case 整形常量表达式:语句;
break在switch语句中的应用:当某个语句项没有使用break的时候,那么将会执行这个语句项之后的语句。我们可以利用这一点可以用于:当switch语句中两个或多个语句项执行的结果一样的时候,只需写最后一个相同语句的将执行结果即可。例如下面的程序:当输入1或2的时候会直接执行3的语句。
case1:
case2:
case3:printf("ok");break;
default在switch语句中的应用:在switch后面的整形表达式的结果没有和case后面的结果适配的时候default就发挥了作用,就执行default后面的语句
default:语句;break;
练习 :
请计算上面代码的m和n的最终值 (上面图片来自于网络)
答案:m=5,n=3
明天学习c语言中的分支和循环语句_while语句