分支语句
if 和switch
if
if语句的语法结构是这样的
if(表达式)
语句;
if(表达式) \\如果表达式成立
语句1; \\执行语句1
else \\表达式不成立
语句2; \\执行语句2
还可以多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
如果条件成立想执行多条语句的话,应该加入代码块
if(表达式)
{
语句列表1;
}
else
{
语句列表2;
}
例子
#incldue<stdio.h>
int main()
{
int study = 0;
printf("你会学习吗?1 or 0 \n");
scanf("%d", &study);
if (study == 1)
{
printf("坚持就是胜利\n");
}
else
{
printf("学习才是真理\n");
}
return 0;
}
switch
switch 也是一种分支语句 常用于多分支的情况。
比如
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期天
这种情况下用switch就比if else语句简单的多。
#include<stdio.h>
int main()
{
int day;
scanf("%d", &day);
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;
}
return 0;
}
switch语句的语法是这样
switch(整型表达式)
{
语句项;
}
而语句项则是
case 整形常量表达式:
语句;
break
注意在switch语句中无法直接实现分支效果必须搭配break使用才能实现真正的分支效果。
在这里break的实际效果是把语句列表分为不同的部分。
在switch语句中最后一个break可以写也可以不写,但是最好写上养成良好的编程习惯。
default
在switch语句中如果表达的值域对所有的case标签都不匹配的时候,就应该在语句列表中加入defualt子句,把下面的标签default,当所有的case标签都不匹配的时候,default子句后面的语句就会执行。注意每一个switch语句中只能出现一条default子句。
以后的编程中在每一个switch语句中都放一条default子句,可以防止意想不到的错误。
循环语句
while ,do while,和for
whlie
whlie语句的语法结构
while(表达式)
循环语句;
当表达式不为真的时候执行语句,一直循环直至表达式为真的时候跳出循环。
例子
打印1-10的数字
#include<stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d",i);
i++;
}
return 0;
}
在while中的break和continue
break 用于跳出循环。
continue用于接着循环。
例
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
{
break;
}
printf("%d ", i);
i++;
}
return 0;
}
这里的break是指当i=5的时候直接跳出循环,所以屏幕上只打印1 2 3 4 四个数字。
例
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
{
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
在这里continue的作用是本次循环中的continue之后的代码将不再执行,直接跳入while语句中的表达式判断部分。
所以在这个例子中当打印1 2 3 4后i = 5以后满足i == 5的这个条件 执行continue 后面的i++将不会执行,所以当打印1 2 3 4以后程序将死循环。
for语句
for语句的语法是这样的
for(表达式1;表达式2;表达式3)
{
循环语句;
}
表达式1位初始化部分,用于初始化循环变量。表达式2是判断部分,当表达式2为真的话执行循环。表达式3位调整部分,用于循环变量的调整。
例子
打印1-10的数字
#include<stdio.h>
int main()
{
int i;
for (i = 1; i < 10; i++)
{
printf("%d ", i);
}
}
for循环中的break和continue
例子
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
if(i == 5)
break;
printf("%d ",i);
}
return 0;
}
在for循环中的break和while中的一样
当i==5的时候跳出循环。
continue就有点差异
例子
#include <stdio.h>
int main()
{
int i = 0;
for(i=1; i<=10; i++)
{
if(i == 5)
continue;
printf("%d ",i);
}
return 0;
}
这里因为循环变量的调整部分在for循环里面
所以不会当执行continue后死循环,而是执行for语句中的i++,然后接着循环,成功打印1-10的数字。
注意
不可以在for循环体内修改循环变量的值,会使for循环失去控制。
do while语句
do while 语法
do
{
循环语句;
}while(表达式)
do while语句有一个特点就是循环至少循环一次。
例子
打印1-10的数字
#include<stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}