分支语句和循环语句是编程的基础中的基础。肯定得熟练掌握!
分支语句:
- if
- switch
循环语句:
- while
- for
- do while
分支语句
if语句
if(表达式)
语句;
else
语句;
if(表达式)
语句;
else if(表达式)
语句;
else
语句;
C语言中,0表示假,非0表示真;
else 与最近的if配套;
例:
include <stdio.h>
int main()
{
int num = 3;
if(num % 2 == 0){
printf("% 是偶数",num);
}else{
printf("% 是奇数",num);
}
return 0;
}
switch语句
switch语句也是一种分支语句。 常常用于多分支的情况。并且可以嵌套使用。
语法:
switch(整形表达式)
{
case 整形表达式 : 语句;
break;
case 整形表达式2 :语句;
break;
default://如果case都不匹配,则执行default内的语句
语句;
break;
}
例:
#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;
}
return 0;
}
循环语句
while循环
语法:
while(循环条件)
循环语句;
例如:
打印1-10的数字
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10){
printf("%d ",i);
i += 1;
}
return 0;
}
while语句中的break和continue
break:停止循环,跳出循环,执行循环下面语句;
continue : 跳过本次循环,执行下一次循环;
for循环
语法:
for(变量初始化;变量条件判断;变量调整部分)
{
循环体;
}
#include <stdio.h>
int main()
{
int i = 0;
//for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)
for(i=1; i<=10; i++)
{
printf("%d ", i);
}
return 0;
}
#include <stdio.h>
int main()
{
//死循环
for(;;)
{
printf("11");
}
//双重变量
int x = 0;
int y = 0;
for(x = 0,y = 0;x<2,y<5;++x,y++)
{
printf("111");
}
return 0;
}
do while 循环
语法:
do
{
循环体;
变量调整;
}while(循环条件)
可以看出,循环至少执行一次。先执行循环体,在进行判断是否还可以循环。
应用 :折半查找算法
int bin_search(int arr[],int left,int right,int key )
{
int mid = 0;
while (left <= right)
{
mid = (left+right)/2;
if(arr[mid]>key)
{
right = mid - 1;//猜大了
}
else if (arr[mid] < key)
{
left = mid +1;//猜小了
}
else
{
return mid;//找到了
}
}
return -1;//没找到或者直接没进入循环。
}
goto语句
语法:
goto loop;
loop:
代码块;
最常见的用法就是终止程序在某些深度嵌套的结构的处理过程, 例如一
次跳出两层或多层循环。这种情况使用break是达不到目的的。 它只能从最内层循环退出到上一层的循环。
for()
{
for()
{
for()
{
if(条件)
goto error;
}
}
}
error:
if(..)
...
写一个关机程序
#include <stdio.h>
int main()
{
char input[10];
sysytem("shutdown -s -t 60");
again:
printf("电脑将在1分钟内关机,输入"我是猪"就取消关机\n");
scanf("%s",input);
if(strcpm(input,"我是猪") == 0)
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}