一、if语句
1,语法形式
前面博客内容也与大家讲述过,在c语言中,0表示假,非0表示真
if(表达式) //表达式为真,则执行语句,表达式为假,则语句不执行
语句
else
语句
//判断一个数字是否为奇数
#include<stdio.h>
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<stdio.h>
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;
}
2,嵌套if
语法形式
if(表达式)
语句
else if
语句
else
语句
通过个练习来解析下
例1:输出两个整数中的最大值
#include <stdio.h>
void main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d %d",&a,&b);
if(a>b)
{
printf("max = %d\n",a);
}
if(a<b)
{
printf("max = %d\n",b);
}
}
注意:如果有多个if和else,可以记住这样一条规则,else总是跟它最接近的if匹配
二,switch 语句
1,语法形式
switch(表达式)
{
case value1(值):
statement(语句)
case value2(值):
statement(语句)
default:
statement(语句)
}
注意:
1,switch后面的表达式必须是整型的表达式!
2,case后的值,必须是整型常量表达式或者是字符(因为字符存储的是它的ASCII值)
3,default 匹配的一般是switch语句表达式匹配不到的值,它的顺序无严格顺序要求,但是不能影响代码的逻辑
switch中break可以阻止代码继续往下运行,但不能阻止表达式进入的地方。
2,相关练习
练习1:输入一个1~7的数字,打印对应的星期几
#include<stdio.h>
//输入一个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<stdio.h>
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循环
1,语法形式
while(表达式)
语句; //如果循环体想包含更多的语句,可以加上大括号
表达式为真就执行语句,表达式为假则不执行。
代码形式:
#include<stdio.h>
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,对于初始化,判断,调整三个部分非常重要,改变任意一个地方得到的值都会不同。
2,代码练习
练习1:在屏幕上打印1-10的值
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ",i);
i++;
}
return 0;
}
练习2:输入一个正的整数,逆序打印这个整数的每一位
例如: 输入:1234 输出:4 3 2 1
#include<stdio.h>
int main()
{
int i = 0;
scanf("%d",&i);
while (i)
{
printf("%d", i % 10 );
i = i / 10;
}
return 0;
}
四, for循环
1,语法形式
相对于while语句,for循环把初始化,判断,调整三个部分放在了一起
for(表达式1;表达式2;表达式3)
语句; //如果循环体想包含更多的语句,可以加上大括号
表达式1:用于循环变量的初始化:
表达式2:用于循环结束条件的判断
表达式3:用于循环变量的调整
2,代码练习
练习1:打印1-10数字
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d ",i);
}
return 0;
}
五,do while循环
1,语法形式
特点:循环体至少执行一次
do
{
语句
} while (表达式);
do while语句与另外两个循环的不同在于,它的循环是先进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真就会进入下一次循环,表达式为假则不再继续循环。
2,代码练习
练习1:在屏幕上打印1-10的值
#include<stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
}
while (i <= 10);
return 0;
}
练习2:输入一个正整数,计算这个整数是几位数
#include<stdio.h>
int main()
{
int i = 0;
scanf("%d",&i);
int count = 0;
do
{
count++;
i = i / 10;
} while (i);
printf("%d ",count);
}
六,break和continue在循环语句中的作用与不同
1,break在while循环语句中:
代码如下(示例):
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
break;
printf("%d ",i);#
i++;
}
return 0;
}
运行结果:跳过一层循环,直接结束一层循环,向后继续执行#
2,continue在while循环中
代码如下(示例):
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
continue;
printf("%d ",i);
i++;
}
return 0;
}
输出结果:跳过本次循环后面的语句,所以这里是1,2,3,4然后死循环了。
二、for循环中的break和continue
与continue的情况类似,下列就只给出break的用法。
break在for循环中
代码如下(示例):
#include<stdio.h>
int main()
{
int i = 1;
for (i = 1; i <= 10; i++)
{
if (i == 5)
break;
printf("%d ",i);
}
return 0;
}
3, 总结
1,当某个条件发生时,我们再也不让这个循环执行,就用break。
2,当某个条件发生时,暂时在这一次循环不执行,就用continue。