提示:本次小编将会和各位读者好好唠嗑一下c预压中的语句,准备好了么出发啦,请注意哦,一定要自己动手敲代码,不然就只能纸上谈兵了!
C语言是一门结构化的程序设计语言,支持三种结构:
结构 | 语句 |
---|---|
顺序结构 | |
选择结构 | if语句,switch语句 |
循环结构 | for 语句,while 语句,do while语句 |
提示:以下是本篇文章正文内容
前面博客内容也与大家讲述过,在c语言中,0表示假,非0表示真
if(表达式) //表达式为真,则执行语句,表达式为假,则语句不执行
语句
else
语句
接下来用一串代码给大家演示一下吧:
//判断一个数字是否为奇数
#include
int main()
{
int input = 0;
//输入一个数
scanf("%d",&input);
if (input % 2 == 1)
printf("奇数:%d\n", input);
else
printf("偶数:%d\n", input);
return 0;
}
注意:以下默认if 和else后面只跟一条语句如果需要多条语句则需要加上大括号将多条语句括起来,如下方所示:
//判断一个数字是否为奇数
#include
int main()
{
int input = 0;
//输入一个数
scanf("%d",&input);
if (input % 2 == 1)
{
printf("我是奇数哦");
printf("奇数:%d\n", input);
}
else
{
printf("我是偶数哦");
printf("偶数:%d\n", input);
}
return 0;
}
if(表达式)
语句
else if
语句
else
语句
//判断一个数字是正数 负数 还是 0
#include
int main()
{
int input = 0;
//输入一个数
scanf("%d", &input);
if (input > 0 )
{;
printf("正数:%d\n", input);
}
else if(input < 0 )
{
printf("负数:%d\n", input);
}
else
{
printf("它的数字是0");
}
return 0;
}
如果有多个if和else,可以记住这样一条规则,else总是跟它最接近的if匹配
//悬空else
//判断一个数字是正数 负数 还是 0
#include
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
switch(表达式)
{
case value1(值):
statement(语句)
case value2(值):
statement(语句)
default:
statement(语句)
}
注意:
1,switch后面的表达式必须是整型的表达式!
2,case后的值,必须是整型常量表达式或者是字符(因为字符存储的是它的ASCII值)
3,default 匹配的一般是switch语句表达式匹配不到的值,它的顺序无严格顺序要求,但是不能影响代码的逻辑
练习:输入任意一个整数值,计算除3之后的余数
int main()
{
int num = 0;
scanf("%d",&num);
if (num % 3 == 0)
printf("余数是0\n");
else if (num % 3 == 1)
printf("余数是1\n");
else
printf("余数是2\n");
return 0;
}
#include
int main()
{
int num = 0;
scanf("%d",&num);
switch (num)
{
case 0:
printf("余数是0\n");
break;
case 1:
printf("余数是1\n");
break;
default:
printf("余数是2\n");
break;
}
}
上面代码可以发现我在case语句后加了一个break;case只能从swich后面表达式来决定从哪里进来,但是从哪个地方跳出去呢,如果没有办法让它跳出去他就会运行剩下的代码,而break可以跳出一层循环。
学习后怎么没有点练习呢,完成以下练习测试:
练习1:输入一个1~7的数字,打印对应的星期几
#include
//输入一个1~7的数字,打印对应的星期几
int main()
{
int date = 0;
scanf("%d", &date);
switch (date)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
default:
printf("你输入的数字有误,请重新输入\n");
break;
}
return 0;
}
练习2:输入1-5为工作日,6-7休息日(提示没有break,语句继续向后执行)
#include
int main()
{
int date = 0;
scanf("%d", &date);
switch (date)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
break;
case 6:
case 7:
printf("休息日\n");
break;
default:
printf("你输入的数字有误,请重新输入\n");
break;
}
return 0;
}
while(表达式)
语句; //如果循环体想包含更多的语句,可以加上大括号
表达式为真就执行语句,表达式为假则不执行。
#include
int main()
{
int i = 0;
scanf("%d",&i);
while (i)
{
printf("%d", i % 10 );
i = i / 10;
}
return 0;
注意:
1,上方代码在这里i被称为循环变量。
2,int i = 1;这里i被初始化,决定了循环从哪里开始。
3,i <= 10 被称为判断。
4,i++;属于调整;
5,对于初始化,判断,调整三个部分非常重要,改变任意一个地方得到的值都会不同。
练习1:在屏幕上打印1-10的值
#include
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ",i);
i++;
}
return 0;
}
练习2:输入一个正的整数,逆序打印这个整数的每一位
例如: 输入:1234 输出:4 3 2 1
#include
int main()
{
int i = 0;
scanf("%d",&i);
while (i)
{
printf("%d", i % 10 );
i = i / 10;
}
return 0;
}
相对于while语句,for循环把初始化,判断,调整三个部分放在了一起
for(表达式1;表达式2;表达式3)
语句; //如果循环体想包含更多的语句,可以加上大括号
表达式1:用于循环变量的初始化:
表达式2:用于循环结束条件的判断
表达式3:用于循环变量的调整
练习1:打印1-10数字
#include
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ",i);
}
return 0;
}
特点:循环体至少执行一次
do
{
语句
} while (表达式);
do while语句与另外两个循环的不同在于,它的循环是先进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真就会进入下一次循环,表达式为假则不再继续循环。
练习1:在屏幕上打印1-10的值
#include
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
}
while (i <= 10);
return 0;
}
练习2:输入一个正整数,计算这个整数是几位数
#include
int main()
{
int i = 0;
scanf("%d",&i);
int count = 0;
do
{
count++;
i = i / 10;
} while (i);
printf("%d ",count);
}
提示:
在c语言循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。c语言中提供了break和continue两个关键字,就是应用到循环中。
1,break的作用是用于永久的终止循环,只要break被执行,直接就会跳出循环继续往后执行。
2,continue的作用是跳过本次循环continue后边的代码,在for和while循环中有所差异。
代码如下(示例):
#include
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
break;
printf("%d ",i);#
i++;
}
return 0;
}
代码如下(示例):
#include
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
continue;
printf("%d ",i);
i++;
}
return 0;
}
输出结果:跳过本次循环后面的语句,所以这里是1,2,3,4然后死循环了。
代码如下(示例):
#include
int main()
{
int i = 1;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ",i);
}
return 0;
}
代码如下(示例):
#include
int main()
{
int i = 1;
for (i = 1; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ",i);
}
return 0;
}
1,当某个条件发生时,我们再也不让这个循环执行,就用break。
2,当某个条件发生时,暂时在这一次循环不执行,就用continue。