条件和循环语句

分支语句和循环语句是编程的基础中的基础。肯定得熟练掌握!

分支语句:

  • if
  • switch

循环语句:

  • while
  • for
  • do while

分支语句

if语句

1
2
3
4
5
6
7
8
9
10
11
if(表达式)
语句;
else
语句;

if(表达式)
语句;
else if(表达式)
语句;
else
语句;

C语言中,0表示假,非0表示真;

else 与最近的if配套;

例:

1
2
3
4
5
6
7
8
9
10
11
include <stdio.h>
int main()
{
int num = 3;
if(num % 2 == 0){
printf("% 是偶数",num);
}else{
printf("% 是奇数",num);
}
return 0;
}

switch语句

switch语句也是一种分支语句。 常常用于多分支的情况。并且可以嵌套使用。

语法:

1
2
3
4
5
6
7
8
9
10
switch(整形表达式)
{
case 整形表达式 : 语句;
break
case 整形表达式2 :语句;
break
default//如果case都不匹配,则执行default内的语句
语句;
break
}

例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#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循环

语法:

1
2
while(循环条件)
循环语句;

例如:

打印1-10的数字

1
2
3
4
5
6
7
8
9
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循环

语法:

1
2
3
4
for(变量初始化;变量条件判断;变量调整部分)
{
循环体;
}
1
2
3
4
5
6
7
8
9
10
11
#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;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#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 循环

语法:

1
2
3
4
5
do
{
循环体;
变量调整;
}while(循环条件)

可以看出,循环至少执行一次。先执行循环体,在进行判断是否还可以循环。

应用 :折半查找算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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语句

语法:

1
2
3
4
goto loop;

loop:
代码块;

最常见的用法就是终止程序在某些深度嵌套的结构的处理过程, 例如一
次跳出两层或多层循环。这种情况使用break是达不到目的的。 它只能从最内层循环退出到上一层的循环。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for()
{
for()
{
for()
{
if(条件)
goto error;
}
}
}

error:
if(..)
...

写一个关机程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#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;
}
文章目录
  1. 1. 分支语句
    1. 1.1. if语句
    2. 1.2. switch语句
  2. 2. 循环语句
    1. 2.1. while循环
      1. 2.1.1. while语句中的break和continue
    2. 2.2. for循环
    3. 2.3. do while 循环
    4. 2.4. 应用 :折半查找算法
    5. 2.5. goto语句