我是靠谱客的博主 有魅力冰棍,这篇文章主要介绍C语言-语句(if,for,while,switch,goto,return,break,continue),现在分享给大家,希望可以做个参考。

一、前言

这篇文章作为C语言基础知识点,介绍C语言常用的几个语句的用法、规则、使用案例。

介绍的语句如下:

复制代码
1
2
3
4
5
6
7
8
9
10
if..else 判断语句 for循环语句 while循环语句 do..while循环语句 switch 语句 goto 语句 return 语句 break 语句 continue 语句

第二章介绍语法使用规则、使用案例,第三章列出了一些练习题,用于结合第二章介绍的语句完成知识点巩固。

二、知识点与案例代码

2.1 if语句语法规则、使用案例

if语句语法:

复制代码
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
31
32
33
34
35
//形式1 if(<条件表达式>) //条件为真的时候执行 { ...执行的代码.. } //形式2 if(<条件表达式>) //条件为真的时候执行 { ...执行的代码.. } else //条件为假的时候执行 (else的语句块可以选择的,可以写也可以不写) { } //形式3 if(<条件表达式>) //条件为真的时候执行 { ...执行的代码.. } else if(<条件表达式>) //条件为假的时候执行 (else的语句块可以选择的,可以写也可以不写) { ...执行的代码.. } else if(<条件表达式>) { ...执行的代码.. } ........ <条件表达式> 里可以写什么代码? 写的语句执行完必须返回具体的结果。 比如:12>34 比如: if(printf("12345"))

使用案例

复制代码
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h> int main(int argc,char *argv[]) { int a=100; int b=20; int c=30; if(a>b) { printf("a>bn"); } if(a>b)printf("a>bn"); //容易出错的地方 if(a==0) //if(a=0) { printf("a>b a>cn"); } //容易出错的地方 if(a&&b)//if(a&0) { printf("a>b a>cn"); } return 0; } /* 逗号、分号 逗号:间隔符号。 比如: int a,b,c,d; ! 逻辑非 && 逻辑与 -- 并且 || 逻辑或 --或者 & 按位与(3&1)、取地址(&a) * 乘号(a*b) 、指针(*a)、 *(块注释) */ #include <stdio.h> int main(int argc,char *argv[]) { int year; printf("输入年份:"); scanf("%d",&year); //判断平年和闰年 条件:能被4整除并且不能被100整除 条件2:能被400整除 if((year%4==0 && year%100!=0) || (year%400==0)) { printf("闰年n"); } else { printf("平年n"); } //判断平年和闰年 条件:能被4整除并且不能被100整除 条件2:能被400整除 if(year%4==0 && year%100!=0) { printf("闰年n"); } else if(year%400==0) { printf("闰年n"); } else { printf("平年n"); } return 0; }

2.2 while、do…while语句

复制代码
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
31
//循环语句 while(<条件表达式>) { ...执行的代码.. } do { ...执行的代码.. }while(<条件表达式>); #include <stdio.h> int main(int argc,char *argv[]) { int a=5; int b=5; //循环语句 a-- 、a=a-1、a-=1; while(a--) { printf("a=%dn",a);//4321 } //循环语句 do { printf("a=%dn",b);//54321 }while(b--); return 0; }

2.3 for语句

复制代码
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <stdio.h> int main(int argc,char *argv[]) { int a=0; //写法1 for(<初始化语句>;<条件表达式>;<自增/自减>) { } 比如: for(a=0;a<10;a++) { } //写法2 for(;<条件表达式>;<自增/自减>) { } 比如: for(;a<10;a++) { } //写法3 for(;;) //条件永远为真 { } 等价于 while(1)//条件永远为真 { } return 0; } #include <stdio.h> int main(int argc,char *argv[]) { //打印99乘法口诀表 int i,j; for(i=1;i<=9;i++) { for(j=1;j<=i;j++) { printf("%dx%d=%2d ",i,j,i*j); } printf("n"); } return 0; } /* 1x1=1 2x1=1 2x2=4.... 3x1=1 3x2=6 3x3=9 ..... ................ */

2.4 break语句

作用: 跳出当前的一层循环,或者跳出switch语句。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h> int main(int argc,char *argv[]) { int i,j,cnt=1; for(i=0;i<5;i++) { for(j=0;j<10;j++) { if(j==5) { break; //跳出当前一层循环 } printf("cnt=%dn",cnt++); //25 } } return 0; }

2.5 goto跳转语句

可以在函数内设置标签,任意跳转。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h> int main(int argc,char *argv[]) { int i,j,cnt=1; for(i=0;i<5;i++) { for(j=0;j<10;j++) { if(j==5) { goto AA; //跳转语句 } printf("cnt=%dn",cnt++); //5 } } AA: printf("程序执行完毕.n"); return 0; }

2.6 continue语句

跳出本次循环,继续执行下一次新的循环。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h> int main(int argc,char *argv[]) { int i,j,cnt=1; for(i=0;i<5;i++) { for(j=0;j<10;j++) { if(j==5) { continue; //跳出当前一次循环 } printf("cnt=%dn",cnt++); // } } return 0; }

2.7 switch 分支语句(C89标准和C99标准)

复制代码
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
#include <stdio.h> int main(int argc,char *argv[]) { int a; scanf("%d",&a); switch(a) { case 1: printf("选择1.n"); break; case 2: printf("选择2.n"); break; case 3: printf("选择3.n"); break; case 4: case 5: case 6: printf("选择4,5,6n"); break; default: printf("选择默认值.n"); break; } return 0; }

三、练习题

3.1 输入整数,然后使用二进制方式输出(数据传输)

复制代码
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
0x23; ---800100011 #include<stdio.h> int main() { unsigned int a,i; int flag=0; printf("输入整数:"); scanf("%d",&a); for(i=0;i<32;i++) { //if(a&0x1) //从低位开始判断 //if(a&0x80000000) //从高位开始判断 if(a&(1<<31)) //从高位开始判断 { flag=1; printf("%d",1); } else { if(flag) { printf("%d",0); } } a<<=1; //把a的左边移动 (高位溢出、低位补0) } printf("n"); return 0; }

3.2 打印所有水仙花数。

所谓水仙花是指一个三位数,其各位数字的立方和等于该数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h> int main() { int i; int a, b, c; for (i = 100; i <= 999; i++) { a = i / 100; b = i % 100 / 10; c = i % 10 / 1; if ((a*a*a + b*b*b + c*c*c) == i) { printf("%d ", i); } } return 0; }

3.3 百元买百鸡

公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元,问一百元买一百只鸡有几种买法。

复制代码
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
31
32
33
34
35
36
37
38
39
40
#include<stdio.h> int main() { int m, g, x; int m_max; int g_max; int x_max; int q, cnt; //cnt=数量 q:钱 printf("公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元n"); printf("请输入要买鸡的数量:n"); scanf("%d", &cnt);// 100 100 printf("请输入要买鸡的钱:n"); scanf("%d", &q);// 100 100 /*1. 判断输入的数据是否合理*/ if (q>0 && cnt>0) { m_max = cnt / 3; // 母鸡 100 /3 =33 g_max = cnt / 5; // 公鸡 100 /5 =20 x_max = (cnt / 1) * 3; // 小鸡 100 /1*3 =300 for (g = 0; g<g_max; g++) // 循环判断可能 { for (m = 0; m<m_max; m++) { x = cnt - g - m; //总数量-公鸡数量-母鸡数量 =小鸡的数量 if (x + g + m == cnt && x / 3 + g * 5 + m * 3 == q) //买鸡的总数等于总鸡数和总钱数等于买鸡的钱数就输出 { printf("公鸡=%dt", g); printf("母鸡=%dt", m); printf("小鸡=%dtn", x); } } } } else printf("输入有误n"); return 0; }

3.4 打印正三角形

复制代码
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
31
32
33
34
35
#include<stdio.h> /* 1 121 12321 1234321 */ int main() { int i, j; int len; scanf("%d", &len); for (i = 1; i <= len; i++) //总行数 { /*1. 打印空格*/ for (j = 1; j <= len - i; j++) { printf(" "); } /*2. 打印前面一半*/ for (j = 1; j <= i; j++) { printf("%d", j); } /*3. 打印后面一半*/ for (j = i - 1; j >= 1; j--) { printf("%d", j); } printf("n"); } return 0; }

3.5 打印倒三角形

复制代码
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
#include<stdio.h> int main() { int i, j; int len; scanf("%d", &len); for (i = len; i >= 1; i--) //循环的总次数 { /*1. 打印空格*/ for (j = len; j>i; j--) { printf(" "); } /*2. 打印前面部分*/ for (j = 1; j <= i; j++) { printf("%d", j); } /*3. 打印后半部分*/ for (j = i - 1; j >= 1; j--) { printf("%d", j); } printf("n"); } return 0; }

最后

以上就是有魅力冰棍最近收集整理的关于C语言-语句(if,for,while,switch,goto,return,break,continue)的全部内容,更多相关C语言-语句(if内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部