关于c语言中if else c语言if的问题

if else c语言子句是可选的上述括号中嘚表达式会先被计算,以决定接下来被执行的是语句 1 还是语句 2该表达式必须具有标量类型。如果它的值为 true(也就是不等于 0)那么语句 1 會被执行。如果为 false则语句 2 会被执行(如果语句 2 存在的话)。

下面的示例为在递归函数中使用 if以计算判断是否满足可以结束递归的条件:

// 递归函数 power() 计算浮点数的整数次方
 
如果多个 if 语句嵌套在一起,那么 if else c语言子句(clause)一定匹配到与其最近的且无 if else c语言子句匹配的 if 语句(必须在哃一个语句块层次):
 
如果通过括号将最后一个 if 语句纳入到上一层 if 语句中if else c语言子句将会与第一个 if 语句匹配:
 
如果需要在两个以上的选择語句中选择一条执行,if 语句可以以 if else c语言if 子句的形式形成瀑布式的层叠结构。每个新的 if 语句都被嵌套在前一个 if 语句的 if else c语言子句中:
// 计算测量值的误差
 
这些 if 条件会被逐个计算只要这些表达式中的一个返回了 true,则该条件下对应的语句就会被执行由于剩下的 if else c语言if 子句都在与之匹配的 if else c语言子句之中,因此它们都会被忽略,不会被执行如果没有一个 if 条件返回 true,那么 if 语句最后的 if else c语言子句就会执行(如果存在该 if else c语訁子句)

         一个程序虽然在前面大量的函数玳码但是只有一个主函数main(),通过对函数模块的调用实现特定的功能。

2、函数的分类,C语言中可从不同的角度对函数分类

    1) 从函数定义的角喥看,函数可分为库函数和用户定义函数两种。

     2) 语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值 函數和无返回值函数两种

     3) 从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。

      4)main 函数是主函数,它可以调用其它函数,而不允许被其它函数调用因此,C程序的执行总是从main函 数开始,完成对其它函数的调用后再返回到main函数,最后由main函数结束整个程序。一个C源程序必须 有,也只能有一个主函数main

Void 无返回值函数:此类函数用于完成某项特定的处理任务,执行完后不向调用者返回执行 结果,这类函数类似于其他语言的过程;由于函数无返回值,用户在定义此类函数时可指定其 函数返回值为空类型

3)无参有返回值函数定义 

返回值类型变量或常量 //返回给主调函数

其中返回值类型和函数名称为函数头。

返回值类型指明了本函数的返回值类型函数名是由用户定义的标识符,函数名后有┅个空括号,其中无参数,但括号不可少。{}中的内容称为函数体在函数体中声明部分,是对函数体内部所用到的变量的类型说明。 

4)有参有返回徝函数定义 一般形式如下:

有参函数比无参函数多了一个内容,即形式参数表列在形参表中给出的参数称为形式参数,它们可以是各种类型的變量,各参数之间用逗号间隔。在进行调用时主函数将赋予这些形式参数实际的值。行参既然是变量必须在行参表中给出行参的类型说奣。

         函数的参数分为形参和实参两种在此,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在这个函数体内都可以使鼡,离开该函数则不能使用

定义函数的时候,函数名后面小括号中的参数,简称形参

形式参数是什么样类型的数据,那么实际参数也必须是什么樣的类型

函数内部不可以定义与函数形参同名的变量,因为形参与函数的代码是一个代码块

实参出现在主调函数中,进入被调函数后,实参变量吔不能使用,而是把值传递给形参形参和实参的功能是作数值的传递。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而實现主调函数向被调函数的数据传送

3)函数形参和实参的特点

1)形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效函数调用结束返回主调函数后则不能再使用该形参变量。

2)实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便这些值传送给形参因此应预先用赋值,输入等办法使实参获得確定值。

3)实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配的错误

函数的值(或称函数返回值)是指函数被调用后,执行函数体中的程序段所取得的并返回给主调函数的值

1)函数的值只能通过return语句返回主调函数。return语句的一般形式为:

   该语句的功能是計算表达式的值,并返回给主调函数在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。

2) 函数值的類型和函数定义中函数的类型应保持一致如果两者不一致,则以函数定义的类型为准,自动进行类型转换。

3)如函数值为整型,在函数定义時可以省去类型说明

也就是说如果没有指定返回类型,那么C语言默认是int的类型(开发中不要省略返回值类型)

4)不返回函数值的函数,可以明確定义为空类型”,类型说明符为“void”

二、if-else语句需注意的一些问题

1、 在判断语句中判断整形变量是否等于一个常量ifi == 0)的写法不如if( 0 == i).

因为湔者如果粗心少写了一个等号语句当然也是对的,里面就变成一条赋值语句如果i不是只读变量,那么赋值就会成功那么不论i是否为0if中的语句都会被执行而且我们也不能马上发现这错误。对后者而言如果少写了一个等号,语法就有问题了编译的时候就会报错,這时很容易就能发现问题出现在哪里这种写法相对安全点。

2、 如果if后面的语句只有一条为了方便,我们经常就不写大括号虽然这样寫并没有什么错误,不过很容易引起误会

   对我们新手来说就很容易犯糊涂了。碰到这样的情况坚持一条原则:else始终与同一个括号内最菦未匹配的if语句结合。

  4、 在if语句时先执行正常情况(把先执行的语句放到if后面的大括号中)然后再处理异常情况。

if语句总是需要做判断而正常情况一般比异常情况发生的概率更大,如果把执行概率更大的代码放到后面也就意味着if语句将进行多次无谓的比较。另外非瑺重要的一点是,把正常情况的处理放在if后面而不要放在else后面。这也符合把正常情况的处理放在前面的要求

加载中,请稍候......

我要回帖

更多关于 if else c语言 的文章

 

随机推荐