C语言学习笔记(5)—— 语句(1)
c程序常见结构大概有选择结构,循环结构,顺序结构。c程序由一个一个的函数构成,而构成函数的则是语句,语句包含赋值语句,循环语句,条件语句,分支语句。赋值语句对与我们来说是很熟悉的。条件语句,分支语句与循环语句则会在后面一一介绍到。
顺序结构对于我们来说是很熟悉的,它可以是这个样子。
int main(){ double a = 0,b = 0; scanf("%lf%lf",&a,&b); printf("a + b = %lf",a+b); printf("a - b = %lf",a-b); printf("a * b = %lf",a*b); return 0; }
在这段程序里,我们定义了两个双精度浮点型变量,然后调用scanf()函数从键盘读取了a,b的值。又调用了printf()函数打印出a+b,a-b,a*b,为什么没有计算a/b呢?因为我们不能判断b的值是否为零,从而计算出a/b的值或者报错。这段代码就是典型的顺序结构。它的框图可以是这样(经过抽象)。
条件结构,在上面的代码里,我们的程序似乎很"傻",因为它不能对a和b进行判断,导致我们不能直接计算出a和b的商,我们该怎么做,才能让程序变的,聪明点呢??实际上,我们只需要对b的值进行判断,当b为0时,输出错误信息。当b不为零时,我们就可以求出a和b的商。用算法框图可以这样表示。
我们可以,改进上面的程序
#include <stdio.h> int main(){ double a = 0,b = 0; scanf("%lf%lf",&a,&b); printf("a + b = %lf",a+b); printf("a - b = %lf",a-b); printf("a * b = %lf",a*b); if (0 == b) { printf("Error,b=0"); } else { printf("a / b = %lf",a/b); } return 0; }
我们可以看见,多出来的是这一段。
这段代码就是典型的if-else语句,当b为0时,程序输出错误信息。当b不为0时,程序计算出a与b的商。if-else语句一般是这样的形式。
if (表达式) { .... .... .... } else { .... .... .... }
当括号内表达式的布尔值为true时,执行if下方代码块的语句,当括号内表达式的布尔值为false时,执行else下方代码块的语句。
现在,我们用if-else语句来求一个分段函数的值。
#include <stdio.h> int main(){ double x; scanf("%lf",&x); if ( 0 == x) { printf("f(%.0lf) = 1",x); } else if (0 > x) { printf("f(%lf) = 0",x); } else { printf("f(%lf) = %lf",x,x*x); } return 0; }
我们使用了if-else if语句来帮助我们进行了多重选择,所以,当可选情况比较多的时候,我们可以考虑使用if-else if语句。这篇文章介绍了顺序结构和选择结构,在后面的文章里,会介绍到循环结构和分支结构。在了解了这些强大的语句之后,就可以使用C语言来完成一些算法题或者写出一些好玩儿的程序。