找回密码
 立即注册
查看: 6128|回复: 2

关于if等函数使用大括号的疑问

[复制链接]
发表于 2013-3-19 21:52:06 | 显示全部楼层 |阅读模式
小弟新人一枚  目前刚刚接触R 中间各种疑问

遇到一个问题,为简化问题,编了个小程序来说明问题
  木有修改的程序
  1. getans<-function(f,x1,jud){
  2. jud=33
  3. cd<-f(x1)
  4. if(f(x1)==jud)
  5. jud
  6. print("hello")
  7. else
  8. print ("how i meet your mother")
  9. }
  10. f<-function(x) x^2+x+3
  11. getans(f,5)
复制代码
目的是如果算出来的函数值为33  那么输出两个东西  一个是33 一个是hello
但是上面的代码出错,找了半天,发现这样可以
  1. getans<-function(f,x1,jud){
  2. jud=33
  3. cd<-f(x1)
  4. if(f(x1)==jud){
  5. jud
  6. print("hello")
  7. }
  8. else
  9. print ("how i meet your mother")
  10. }
  11. f<-function(x) x^2+x+3
  12. getans(f,5)
复制代码
这样可以输出结果了,但是想要的33没有输出来,仅仅出来了hello,但是如果给jud加上print(),就可以输出两行,第一行33,第二行hello

小弟的问题是,如果if下面是单单一行执行行,那么光输入jud也是可以显示的,多行就要报错了,这是为什么,莫非if下面多行执行的时候,必须要用大括号{}抱起来吗?包起来以后,jud这个量,直接写上去也不行了,必须用print才能显示出来么?

以上是小弟的几个小问题,可能比较弱,还望各位高人多多指点...谢谢


回复

使用道具 举报

发表于 2013-3-31 20:08:07 | 显示全部楼层
R语言中,if语句后面只能跟一条语句,如果需要跟多条语句,则必须用一对花括号{}围住,表示逻辑上看做一条语句。
其他的流程控制语句如for、repeat等都一样。
回复

使用道具 举报

 楼主| 发表于 2013-4-2 11:00:06 | 显示全部楼层
adhz 发表于 2013-3-31 20:08
R语言中,if语句后面只能跟一条语句,如果需要跟多条语句,则必须用一对花括号{}围住,表示逻辑上看做一条语 ...

谢谢你  我那天弄明白这个了  也是挺好玩的一个东西

语言学多了 混乱了  还是自己不够扎实啊...向各位多学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|R语言中文网

GMT+8, 2024-11-25 07:34 , Processed in 0.023212 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表