大家好,欢迎来到IT知识分享网。
一丶什么是语句
语句可分为以下五类:
表达式语句
函数调用语句
控制语句
复合语句
空语句
用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,
C
语言有九种控制语句。
条件判断语句也叫分支语句:
if
语句、
switch
语句;
循环执行语句:
do while
语句、
while
语句、
for
语句;
转向语句:
break
语句、
goto
语句、
continue
语句、
return
语句。
二丶分支结构(循环语句)
1.选择语句的基本结构图
2.if语句
(1).
if(表达式)
语句1:
(2)
if(表达式)
语句1;
else
语句2;
(3)多分支型
if(表达式)
语句1;
else if(表达式2)
语句2;
else
语句3;
#include <stdio.h> //代码1 int main() { int age = 0; scanf("%d", &age); if (age < 18) { printf("未成年\n"); } } //代码2 #include <stdio.h> int main() { int age = 0; scanf("%d", &age); if (age < 18) { printf("未成年\n"); } else //else与最近的上面那个if相匹配 { printf("成年\n"); } } //代码3 #include <stdio.h> int main() { int age = 0; scanf("%d", &age); if (age < 18) { printf("少年\n"); } else if (age >= 18 && age < 30) { printf("青年\n"); } else if (age >= 30 && age < 50) { printf("中年\n"); } else if (age >= 50 && age < 80) { printf("老年\n"); } else { printf("老寿星\n"); } }
在上面的代码中,if括号里的语句如果是成立的话即可执行代码,否者不执行或者进入下个语句。表达式的结果为0的话就表示假,非0的话就表示真。同时如果要实现多个语句的执行的话,就需要在if语句后跟代码段。即如下情况
if(表达式1) { 多条语句; } else { 多条语句; } return 0;
注:用{}隔开即可
在书写if语句时,我们需要注意的是注意书写格式和规范性,规范的书写习惯能让我们更好的阅读语句,在发生bug时也能更好的检查错误。
3.练习
(1)判断一个数是否为奇数
(2)输出1-100之间的奇数
参考答案如下:
#include<stdio.h> int main() { int num = 0; scanf("%d", &num); if (num % 2 == 0) printf("该数不是奇数"); else printf("该数是奇数"); return 0; }
int main() { int n = 0; while (n < 101) { if (n % 2 == 1) printf("%d ", n); n++; } return 0; }
4.switch语句
(1)switch常用于多分支情形下,在分支太多的情况下,if语句就显得冗杂多余了。switch语句语句结构如下
switch语句在特定情况下方便很多,例如下面这个:
1
,输出星期一
2
,输出星期二
3
,输出星期三
4
,输出星期四
5
,输出星期五
6
,输出星期六
7
,输出星期日
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; }
语句
的实际效果是把语句列表划分为不同的分支部分,在书写中我们习惯的把最后一句case后面跟上一个break,这样可以防止出bug。
(1)while语句的语句结构如下:
具体写做 {while(语句)
循环语句;}
(2)在switch语句中有停止语句,在while语句中同样也是如此。
break在循环语句中,遇到break的话,就会停止后面的所有循环,直至终止循环。
并且是永久终止循环,即直接跳出这个循环,结束进程或者进入下个语句。
continue语句则是为了结束当前语句的循环,即continue语句后面的语句不再执行,而是跳到while语句处,进行下一次的循环判断。
示例如下:
int main() { int i = 1; while(i<=10) { if(i == 5) break; printf("%d",i); i++; } return 0; }
上诉代码输出的结果为1234,即在i==5的时候整个循环就结束,不再执行。
#include <stdio.h> int main() { int i = 1; while(i<=10) { if(i == 5) continue; printf("%d ", i); i = i+1; } return 0; }
上诉代码的输出结果也为1234,但是与上面那个不同的是,上面的代码是因为跳出了循环,而这个是因为i++语句在continue语句后面,因此在i==5被continue语句中断那次循环后,i的值一直是5,输出不了后面的值了。
3.for循环
(1)for循环的结构
for(语句1:语句2:语句3)
循环语句;
for后面的三个语句功能如下:
1
为
初始化部分
,用于初始化循环变量的。
2
为
条件判断部分
,用于判断循环时候终止。
3
为
调整部分
,用于循环条件的调整。
示例如下:
#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; }
(2)break和continue语句在for语句中与while语句中大同小异,具体用法和作用参考上面的while部分。
//代码1 #include <stdio.h> int main() { int i = 0; for(i=1; i<=10; i++) { if(i == 5) break; printf("%d ",i); } return 0; } //代码2 #include <stdio.h> int main() { int i = 0; for(i=1; i<=10; i++) { if(i == 5) continue; printf("%d ",i); } return 0; }
4.do..while语句
(1)do…while的语法
do
循环语句;
while(表达式);
(2)do..while的限制条件是至少得循环一次,因此没有上面2种的使用范围广,我们不是经常使用
示例:
int main() { int i = 10; do { printf("%d\n", i); }while(i<10); return 0; }
(3)do..while语句中的break和continue与while中基本一样,参照上诉就可了
5.如果想快速熟悉分支语句和循环语句的话,可以多做做以下的题目,能加深印象和提高熟练度.
折半查找算法
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"); }
四丶后语
分支结构和循环结构是我们平时不可避免的2种方式,因此必须得熟练熟练再熟练,只有熟练掌握了这2种结构才能在后面的学习中不断进步。
最后,谢谢大家的观看!!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/139207.html