语句:c语言中由一个;号隔开的就是一条语句
分支语句
if语句
表达式为真,语句执行
语法结构
//单语句执行
if(表达式)
语句;
//分支语句
if(表达式)
语句;
else
语句;
//多分支语句
if(表达式)
语句;
else if(表达式)
语句;
...
else
语句;
语句块
{
语句;
...
}
示例
#include<stdio.h>
int main()
{
int num = 10;
if(num%2 == 0)
{
printf("%d是偶数\n",num);
}
else
{
printf("%d是奇数\n",num);
}
return 0;
}
规范书写格式,避免程序错误
#include<stdio.h>
int main()
{
int a=0;
int b=2;
if(a==1)
if(b==2) // <-
printf("heihei\n");
else //与那个if匹配?
printf("wawa\n");
return 0;
}
规范书写格式,避免程序错误
switch语句
语法结构
switch(整型表达式)
{
case 整型常量表达式:
语句;
...
case 整型常量表达式:
语句;
default:
语句;
}
break:在switch语句中无法直接实现分支,需要借助break实现;
default:当switch表达式的值不匹配所有case标签的值时,执行default;
每个switch语句只能有一个default子句
可以出现在任何case标签可以出现的位置
示例
#include<stdio.h>
int main()
{
int day = 0;
switch (day)
{
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;
/* 当day为 1 2 3 4 5 时打印上学,6 7时打印睡觉
case 1:
case 2:
case 3:
case 4:
case 5:
printf("上学!\n");
case 6:
case 7:
printf("睡觉!");
*/
default :
printf("一周只有七天!想多上课?\n");
break;
}
}
当break缺少时,从匹配的case语句开始依次向下执行
例:当day为5时,输出为
周五
周六
周日
一周只有七天!想多上课?
循环语句
for循环
适用于已知循环次数
语法结构
for(表达式1;表达式2;表达式3)
{
...
}
示例
//打印0~9,每打印五个换行
#include<stdio.h>
int main()
{
int count = 0;
for(int i=0; i<10; ++i)
{
printf("%d ",i);
count++;
if(count == 5)
{
printf("\n");
}
}
return 0;
}
whlie循环
适用于已知循环条件,未知循环次数
语法结构
while(表达式)
{
...
}
示例
//打印0~99
#include<stdio.h>
int main()
{
int i = 0;
while(i<100)
{
printf("%d ");
i++;
}
return 0;
}
do...while循环
语法结构
do
{
...
}while(表达式);
循环先执行,再执行表达式
循环至少执行一次
示例
//打印0~9
#include<stdio.h>
int main()
{
int i = 0;
do
{
printf("%d ",i);
i++;
}while(i<10);
return 0;
}
continue&break
continue 跳出本次循环,继续执行下次循环
break 结束循环语句
continue
//打印0~15除七及七的倍数的所有数
#include<stdio.h>
int main()
{
int i = 0;
while(i<16)
{
if(i%7 == 0)
{
i++;
continue;
}
printf("%d ");
i++;
}
return 0;
}
0 1 2 3 4 5 6 8 9 10 11 12 13 15
break
//打印0~99,到10停止
#include<stdio.h>
int main()
{
int i = 0;
while(i<100)
{
if(i == 10)
break;
printf("%d ");
i++;
}
return 0;
}
0 1 2 3 4 5 6 7 8 9
goto语句
两部分:goto和标签名
用法
出现问题时,从一组嵌套循环中跳出。(break只能跳出当前循环)
goto label;
...
...
label : 语句
示例
//关机程序
#include<stdio.h>
int main()
{
char input[10]={0};
system("shutdown -s -t 60");
again:
printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n");
scanf("%s",input);
if(0==strcmp(input,"我是猪"))
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}
注:== 逻辑操作符
= 赋值操作符
0为假,非零为真
最难不过坚持!