2015-09-07 57 views
0

我试图做一个简单的过程,以获得从控制台扫描)值(R. 功能问题()中的R功能

上述R代码工作得很好:

funent <- function(){ 
    val <- scan(,,1) 
    return(as.character(val)) 
} 

print("Seleccione: 1. consulta, 2.cirugia") 
tipo <- funent() 

但是,当我在下面添加更多代码时,它不起作用。执行不会停止在扫描中。

funent <- function(){ 
    val <- scan(,,1) 
    return(as.character(val)) 
} 

print("Seleccione: 1. consulta, 2.cirugia") 
tipo <- funent() 
while((tipo < 1 | tipo >2)){ 
    if (tipo < 1 | tipo >2) { 
    print("Introduzca 1(consulta) o 2(cirugia)") 
    tipo <- funent() 
    } 
} 

我的R代码有什么问题吗?

回答

0

你的代码没有问题。执行不scan停止,因为的tipo值是1或2。它的工作原理,当tipo超出该范围,如预期:

tipo = 0 
while((tipo < 1 | tipo >2)){ 
    if (tipo < 1 | tipo >2) { 
    print("Introduzca 1(consulta) o 2(cirugia)") 
    tipo <- funent() 
    } 
} 
[1] "Introduzca 1(consulta) o 2(cirugia)" 
1: