c语言程序设计流程控制语句.pptx
文本预览下载声明
实际工作中,顺序结构是不能满足程序设计要求的,因为大量的实际问题需要通过流程的控制来解决的。例如:如果明天气温高于35c,,我将去游泳,否则在家看看电视。或我将做作业直到晚上十点。从程序结构上看,就是通过循环结构和选择结构来实现的。§4-1 选择结构语句4.1.1 if语句 程序设计过程中,常常需要根据某一条件是否满足来判断做或者不做某件事。这种结构在c中是通过if语句实现的。if语句的三种形式if语句的三种形式(1)形式一: If (表达式) 语句说明:表达式通常为关系表达式或逻辑表达式,两边的括号必不可少,当语句不止一句的时候,可以使用一组括号把他们组成复合语句。 例如:If (xy) printf( “%d”, x);流程图否否表达式真语句执行过程:先计算表达式的值,如果表达式的值为非零,则执行语句;如果值为零,则跳过if语句执行其后续语句。举例 例4.1 一个猜字游戏程序。程序运行时,要求游戏者从键盘输入一个数,如果猜对了,屏幕显示“**Right**”;否则屏幕不显示任何信息。#include stdio.h main() { int magic=123; int guess; printf(“Enter your guess:); scanf(“%d,guess); if (guess==magic) printf(“**Right**\n); }if语句的三种形式(2) 形式二: If (表达式) 语句1 else 语句2 例如:If (xy) printf “%d”, x);Else printf(“%d”,y);表达式成立吗?真(非0)假(0)语句序列1语句序列2执行过程:先计算表达式的值,如果表达式的值为非零,则执行语句1后跳过语句2而执行后续语句;如果值为零,则跳过语句1执行语句2。注意:1.c语言每条语句必须以分号结束,因此else之前有一分号,整个语句结束处有一分号。例:if(ab) printf(“%d”,a); else printf (“%d”,b); 正确if(ab) printf(“%d”,a) else printf (“%d”,b); 错误2.语句1与语句2不能同时执行。举例 例4.2 将例4.1程序中的if语句改成if-else语句,如果游戏者猜对了,就显示”**Right**”,若猜错了,就显示“**Wrong**”。#include stdio.h main() { int magic=123; int guess; printf(Enter your guess:); scanf(%d,guess); if (guess==magic) printf(**Right**\n); else printf(**Wrong**\n); }if 语句的三种形式(3)形式三: if (表达式1) 语句1;……..else if (表达式n) 语句序列n;else if (表达式2) 语句2;else 语句序列n+1; else if (表达式3) 语句3; 这种形式可以实现多分支选择的功能,既在多种条件下的不同分支中选择一个分支来执行。 它的执行过程为:若表达式1的值为真(非零),则执行语句1;否则,若表达式2的值为真,则执行语句2;…….若上述表达式的值都为0时,执行语句n+1.以下为流程图:表达式1成立吗?假(0)表达式2成立吗?假(0)表达式3成立吗?假(0)真(非0)…表达式n成立吗?真(非0)假(0)真(非0)真(非0)语句序列2语句序列3语句序列1语句序列n+1语句序列n例如:if (x0) y=1;else if (x==0) y=0; else y=-1;…举例 例4.3 例4.2再扩充,即当游戏者猜错时,屏幕除显示“**Wrong**”外,还告诉游戏者是猜大了还是猜小了。#include stdio.h main() {int magic=123; int guess; printf(Enter your guess:); scanf(%d,guess); if (guess==magic) printf(**Right**\n); else if(guessmagic) printf(**Wrong**\nToo high**\n) else printf(**Wrong**\nToo low**\n);}说明:以上三种格式中的表达式一般为关系表达式或逻辑表达式只要表达式的结果不为0,系统就认为该表达式成立;相反表达式的结果为0,系统认为该表达式不成立。例如:if(a==bx==y) printf(“a=b,x=y”);系统对表达式的值进行判断,若为真,按非零处理,执行指定的语句;若为假,按零处理。 如:if (
显示全部