English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A estrutura de decisão requer que o programador especifique uma ou mais condições a serem avaliadas ou testadas, bem como as instruções a serem executadas quando a condição for verdadeira (obrigatórias) e quando for falsa (opcional).
Abaixo está a forma geral de estrutura de decisão típica em muitos linguagens de programação:
O R oferece os seguintes tipos de instruções de decisão:
instrução if
instrução if...else
Declaração switch
um comando if é composto por uma expressão booleana seguida por uma ou mais instruções.
O formato de sintaxe é o seguinte:
if(boolean_expression) { // instrução a ser executada se verdadeira }
se a expressão booleana boolean_expression for true, executar o código dentro deste bloco. Se for false, não executar.
x <- 50L if(is.integer(x)) { print("X é um inteiro") }
Execute o código acima e o resultado será:
[1] "X é um inteiro"
um comando if pode ser seguido por uma instrução else opcional, que é executada quando a expressão booleana for falsa.
O formato de sintaxe é o seguinte:
if(boolean_expression) { // instrução a ser executada se verdadeira } else { // instrução a ser executada se falsa }
se a expressão booleana boolean_expression for true, executar o código dentro do bloco if. Se for false, executar o código dentro do bloco else.
x <- c("google","w3codebox,"taobao") if("w3codebox " %in% x) { print("contém w3codebox) } else { print("não contém w3codebox) }
Execute o código acima e o resultado será:
[1] "contém w3codebox"
se houver múltiplas condições de decisão, pode-se usar if...else if...else:
else if (boolean_expression 1) { // se a expressão booleana boolean_expression 1 instrução a ser executada se verdadeira } 2) { // se a expressão booleana boolean_expression 2 instrução a ser executada se verdadeira } 3) { // se a expressão booleana boolean_expression 3 instrução a ser executada se verdadeira } else { // executar quando todas as expressões booleanas forem false }
x <- c("google","w3codebox,"taobao") print("primeiro if contém weibo") else if ("w }3codebox " %in% x) { print("segundo if contém w3codebox) } else { print("Nenhum encontrado") }
Execute o código acima e o resultado será:
[1] "O segundo if contém w3codebox"
Uma declaração switch permite testar várias condições quando uma variável é igual a vários valores. Cada valor é chamado de um caso.
O formato de sintaxe é o seguinte:
switch(expressão, case1, case2, case3....)
switch A declaração deve seguir as regras a seguir:
switch Na declaração expressão É uma expressão constante, pode ser um inteiro ou uma string, se for um inteiro, retorna o valor da posição correspondente ao case, se o inteiro não estiver no intervalo da posição, retorna NULL.
Se coincidir com várias valores, retorna o primeiro.
expressãoSe for uma string, correspondente ao nome da variável no case, não há correspondência, não há valor de retorno.
switch não tem parâmetro padrão disponível.
O seguinte exemplo retorna o terceiro valor:
x <- switch( 3, codebox", "w3codebox", "taobao", "weibo" ) print(x)
Execute o código acima e o resultado será:
[1] "taobao"
Se for uma string, retorna o valor correspondente à variável de string:
you.like<-"w3codebox" switch(you.like, google="www.google.com", w3codebox = "pt.oldtoolbag.com", taobao = "www.taobao.com")
Execute o código acima e o resultado será:
[1] "pt.oldtoolbag.com"
Se o inteiro não estiver no intervalo, retorna NULL
> x <- switch(4,"google","w3codebox,"taobao") > x NULL > x <- switch(4,"google","w3codebox,"taobao") > x NULL