版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
语句
在C语言中,由一个分号隔开的就是一条语句
分支语句
分支语句即选择语句
if语句
语法结构
if(表达式)
语句;
if(表达式)
语句1;
else
语句2;
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
注意
当一个if语句套入另一个if中,应注意if悬空的问题,例:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
if(b == 2)
printf("1\n");
else
printf("2\n");
return 0;
}
应当选择使用{ }来区分不同的if语句:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1)
{
if(b == 2)
printf("1\n");
}
else
{
printf("2\n");
}
return 0;
}
switch语句
switch语句也是一种分支语句。 常常用于多分支的情况
语法结构
switch(整型表达式)
{
语句项;
}
样例示范:
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;
default:
break;
}
return 0;
}
break用于划分不同部分语句部分,default用于处理与标签值不匹配的情况
循环语句
while语句
语法结构
while(表达式)
循环语句;
样例示范:
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
注意
在while语句中,常用break及continue,break用于停止运行后面的语句并跳出循环,continue用于停止运行后面的语句并立即进入下一次循环的判断部分
for语句
语法结构
for(表达式1;表达式2;表达式3)
循环语句;
样例示范
int main()
{
for(int i = 0 ; i < 10 ; i++)
{
printf("%d ", i);
}
return 0;
}
同样的,break和continue适用于for语句,且具有相同意义
do…while语句
语法结构
do
循环语句;
while(表达式);
语句特点为至少进行一次循环
样例示范:
#include <stdio.h>
int main()
{
int i = 10;
do
{
printf("%d\n", i);
}
while(i<10);
return 0;
}
语句使用
写一个折半查找的程序:
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int left = 0;
int right = sizeof(arr)/sizeof(arr[0])-1;
int key = 7;
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
break;
}
if(left <= right)
printf("%d\n", mid);
else
printf("找不到\n");
}
写一个函数实现二分查找:
int bin_search(int arr[], int left, int right, int key)
{
int mid = 0;
while(left<=right)
{
mid = (left+right)>>1;
if(arr[mid]>key)
{
right = mid-1;
}
else if(arr[mid] < key)
{
left = mid+1;
}
else
return mid;
}
return -1;
}