C语言学习笔记6

        鲁迅先生曾说过,伟大的成绩和辛勤劳动是成正比例的,有一分劳动就有一分收获,日积月累,从少到多,奇迹就可以创造出来。学习也是同等道理,日积月累,逐渐储备知识就可以完成自己的理想。然而看c语言编程教程是储备知识的一个方法, 所以现在就来看看我要学习的知识内容。
if语句是大型程序使用最多的结构,不管你编写的是应用程序还是脚本语言,经常会遇到判断语句。
用if语句可以构成分支结构。它根据给定的条件进行判断, 以决定执行某个分支程序段。C语言的if语句有三种基本形式。

1.第一种形式为基本形式 if(表达式) 语句; 其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图
void main(){
int a,b,max;
printf("\n input two numbers: ");
scanf("%d%d",&a,&b);
max=a;
if (max printf("max=%d",max);
}
输入两个整数,输出其中的大数。
scanf("%d%d",&a,&b);
max=a;
if (max printf("max=%d",max);

本例程序中,输入两个数a,b。把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。因此max中总是大数,最后输出max的值。
2.第二种形式为if-else形式
if(表达式)
语句1;
else
语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。
void main(){
int a, b;
printf("input two numbers: ");
scanf("%d%d",&a,&b);
if(a>b)
printf("max=%d\n",a);
else
printf("max=%d\n",b);
}
输入两个整数,输出其中的大数。改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。
3.第三种形式为if-else-if形式
前二种形式的if语句一般都用于两个分支的情况。 当有多个分支选择时,可采用if-else-if语句,其一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;

else if(表达式m)
语句m;
else
语句n;
其语义是:依次判断表达式的值,当出现某个值为真时, 则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n 。 然后继续执

行后续程序。 if-else-if语句的执行过程如图3—3所示。
#include"stdio.h"
void main(){
char c;
printf("input a character: ");
c=getchar();
if(c<32)
printf("This is a control character\n");
else if(c>='0'&&c<='9')
printf("This is a digit\n");
else if(c>='A'&&c<='Z')
printf("This is a capital letter\n");
else if(c>='a'&&c<='z')
printf("This is a small letter\n");
else
printf("This is an other character\n");
}
本例要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。 在“0”和“9”之间的为数字,在“A”和“Z”之

间为大写字母, 在“a”和“z”之间为小写字母,其余则为其它字符。 这是一个多分支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的

输出。例如输入为“g”,输出显示它为小写字符。


而在qbasic中的if语句和其他的编程语言比较一致,基本上都是 if……then……else……结构。其中if……then……是必须的,其中if后面的条件可以使用and、or 的多条件结构

,if语句和else后面也可以跟随if语句的嵌套,这种写法在C语言中也是很常见的一种写法。例如:

例如典型的托运计费问题:

当货物重量小于20公斤的时候,收费5元,大于20公斤小于100公斤的时候超出20公斤的部分按每0.2元每公斤计费,如果超出100公斤的时候,超出的部分按照每公斤0.15元计算。

编写程序,自动计算货物的运费。

分析:货物的费用分为三个区间,小于20公斤,20-100公斤,100公斤以上。需要使用判断语句来分情况处理。

初写:

if x<=20 then y=5
if x<=100 then y=5+(x-20)*0.2
if x>100 then y=5+(100-20)*0.2+(x-100)*0.15

如果完善一下,加上输入重量 x 的语句和输出结果 y 的语句,程序可以变为:

cls
input "shu ru zhong liang";x
if x<=20 then y=5
if x<=100 then y=5+(x-20)*0.2
if x>100 then y=5+(100-20)*0.2+(x-100)*0.15
print "tuo yun fei shi:";y;
end

注意:
1、上例中的input语句是输入语句,其中英文引号部分可有可无,有的好处是,可以提示我们“输入重量”的数字,其中引号和X之间需要用英文的分号分隔(这一点和print语句

是一样的);
2、上例中我在第二个if没有使用双条件语句 if x>20 and x<100 想想为什么?(使用双条件的结果是一样的)
4.在使用if语句中还应注意以下问题

(1) 在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。例如

: if(a=5) 语句;if(b) 语句; 都是允许的。只要表达式的值为非0,即为“真”。如在if(a=5)…;中表达式的值永远为非0,所以其后的语句总是要执行的,当然这种情况在程

序中不一定会出现,但在语法上是合法的。
又如,有程序段: if(a=b)
printf("%d",a);
else
printf("a=0"); 本语句的语义是,把b值赋予a,如为非0则输出该值,否则输出“a=0”字符串。这种用法在程序中是经常出现的。

(2) 在if语句中,条件判断表达式必须用括号括起来, 在语句之后必须加分号。

(3) 在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{} 括起来组成一个复合语句。但要注意的是在}之后

不能再加分号。
例如:
if(a>b){
a++;
b++;
}
else{
a=0;
b=10;
}

在运用If语句的时候,一定要条理清晰,灵活运用,多查看一些C语言经典书籍中的典型案例,充分理解语言运用方法。今天学习到这里,一分耕耘一分收获,明天继续学习。

 

你可能感兴趣的:(C语言学习笔记6)