c语言中if和while 有什么区别?

Python011

c语言中if和while 有什么区别?,第1张

区别:

一、if和while共同点是都有判断。

二、if和while不同点是,if后的语句只执行一次,while则会循环执行,直到出现while后的条件成才退出。

三、语法不同:

1、IF(logical_test,value_if_true,value_if_false)

2、while<条件>do<语句>

意为当条件符合时,接着做下面的语句;不符合时,退出循环。

四、功能不同:

1、IF函数是条件判断函数:如果指定条件的计算结果为TRUE,IF函数将返回某个值;如果该条件的计算结果为FALSE,则返回另一个值。

例如IF(测试条件,结果1,结果2),即如果满足“测试条件”则显示“结果1”,如果不满足“测试条件”则显示“结果2”。

2、while循环也被称为“当”型循环。即当条件为真时,执行循环体中。在R语言中,while循环的语法格式如下:while(cond){expr}其中,cond是一个逻辑条件表达式,其值应为TRUE或FALSE;expr是循环体中的语句,即当cond条件为TRUE时要执行的表达式或若干语句。

例如:

1、if用来做条件判断

if用来做条件判断,与else搭配使用。在if条件判断中,若逻辑条件表达式为真,则运行语句或语句块;如果逻辑条件表达式为假,则跳过语句;

例如,超过五点下班走人,否则就继续上班。在这里“时间”就是判断条件,时间就是下班或者上班只要时间超过五点,即判断条件为真,则执行的事件就是下班,else语句不再执行,即不再执行上班语句;只要事件没有超过五点,则执行上班语句。

2、while是循环语句

在C语言中通常用while来表示循环,例如在main()函数中一般都用while(1)来让主程序循环执行。即在逻辑条件表达式为真的情况下,while反复执行循环体内包含的语句或语句块,直到条件不成立。

例如:天气如果是下雨就执行睡觉指令,直到不下雨为止;如阴天、晴天或者下雪等其他天气就不执行睡觉指令。

4、if语句叫做选择语句,一般和else一起使用。判断条件是否成立,成立则执行if后面的分支,不成立则执行else后面的分支。执行完毕则转入下条语句。

while语句叫做循环语句。同样是判断条件是否成立。但是执行完毕后继续判断该条件,直到该条件不成立则转入下一条语句。

对于一个假条件,两者的执行情况是一致的。对于一个真条件,执行完毕后if语句就顺序执行下一条,while还要继续判断和执行。这就是两者的不同吧。

对于while语句,必须要在执行语句中设置改变判断条件结果的语句或者设置跳出语句以避免陷入死循环。

参考资料:

百度百科——IF函数

百度百科——while(循环语句及英文单词)

R语言实际上是函数的集合,用户可以使用base,stats等包中的基本函数,也可以自己编写函数完成一定的功能。但是初学者往往认为编写R函数十分困难,或者难以理解。这里对如何编写R函数进行简要的介绍。

函数是对一些程序语句的封装。换句话说,编写函数,可以减少人们对重复代码书写,从而让R脚本程序更为简洁,高效。同时也增加了可读性。一个函数往往完成一项特定的功能。例如,求标准差sd,求平均值,求生物多样性指数等。R数据分析,就是依靠调用各种函数来完成的。但是编写函数也不是轻而易举就能完成的,需要首先经过大量的编程训练。特别是对R中数据的类型,逻辑判别、下标、循环等内容有一定了解之后,才好开始编写函数。 对于初学者来说,最好的方法就是研究现有的R函数。因为R程序包都是开源的,所有代码可见。研究现有的R函数能够使编程水平迅速提高。

R函数无需首先声明变量的类型,大部分情况下不需要进行初始化。一个完整的R函数,需要包括函数名称,函数声明,函数参数以及函数体几部分。

函数名称,即要编写的函数名称,这一名称就作为将来调用R函数的依据。

2. 函数声明,包括 <- function, 即声明该对象的类型为函数。

3. 函数参数,这里是输入的数据,函数参数是一个虚拟出来的一个对象。函数参数所等于的数据,就是在函数体内部将要处理的值,或者对应的数据类型。 函数体内部的程序语句进行数据处理,就是对参数的值进行处理 ,这种处理只在调用函数的时候才会发生。函数的参数可以有多种类型。R help的界面对每个函数,及其参数的意义及所需的数据类型都进行了说明。

4. 函数体

常常包括三部分.

(1). 异常处理

输入的数据不能满足函数计算的要求,或者类型不符, 这时候一定要设计相应的机制告诉用户,输入的数据在什么地方有错误。 错误又分为两种。

第一种, 如果输入的数据错误不是很严重,可以经过转换,变为符合处理要求的数据时, 此时只需要给用户一个提醒,告知数据类型不符,但是函数本身已经 进行了相应的转换。

第二种,数据完全不符合要求,这种情况下,就 要终止函数的运行,而告知因为什么,函数不能运行。这样,用户在 使用函数的情况先才不至于茫然。

(2). 运算过程

包括具体的运算步骤。 运算过程和该函数要完成的功能有关。

R运算过程中,应该尽量减少循环的使用,特别是嵌套循环。R提供了 apply,replicate等一系列函数,来代替循环,应该尽量应用这些函数, 提高效率。 如果在R中实在太慢,那么核心部分只能依靠C或者Fortran 等语言编写,然后再用R调用这些编译好的模块,达到更高的效率。

运算过程中,需要大量用到if等条件作为判别的标准。if和while都是需要数据TRUE/FALSE这样的逻辑类型变量,这就意味着,if内部,往往是对条件的判别,例如 is.na, is.matrix, is.numeric等等,或者对大小的比较,如,if(x >0), if(x == 1), if(length(x)== 3)等等。if后面,如果是1行,则花括号可以省略,否则就必须要将所有的语句都放在花括号中。这和循环是一致的。

例子:

## if与条件判断

fun.test <- function(a, b, method = "add"){

if(method == "add") { ## 如果if或者for/while;

res <- a + b ## 等后面的语句只有一行,则无需使用花括号。

}

if(method == "subtract"){

res <- a - b

}

return(res) ## 返回值

}

### 检验结果

fun.test(a = 10, b = 8, method = "add")

fun.test(a = 10, b = 8, method = "substract")