R语言计算器开发:if条件语句报错问题排查
问题描述
我想要开发一款可接收用户操作选择的计算器,在测试用户选择后的条件判断逻辑时,发现if-else语句出现报错。以下是我的代码及报错信息,请问报错原因是什么?if和else语句存在什么问题?
我的代码
Adicao = "Adição" Subtracao = "Subtração" Multiplicacao = "Multiplicação" Divisao = "Divisão" print("Choice of operations:") cat("1.", Adicao) cat("2.", Subtracao) cat("3.", Multiplicacao) cat("4.", Divisao) escolha <- as.integer(readline(prompt="Enter your choice: ")) if(escolha = 1){ print("Cool! You choose addition") } else { print("You didnt choose addition ") }
报错信息
> escolha <- as.integer(readline(prompt="Enter your choice: ")) Enter your choice: 2 > if(escolha = 1){ Error: unexpected '=' in "if(escolha =" > print("Cool! You choose addition") [1] "Cool! You choose addition" > } else { Error: unexpected '}' in "}" > print("You didnt choose addition ") [1] "You didnt choose addition " > } Error: unexpected '}' in "}"
问题分析与解决
1. 条件判断符号使用错误
R语言中,赋值操作使用=或<-,相等比较必须用==。你在if条件里写了escolha = 1,这是赋值语句,不是判断escolha是否等于1的逻辑,R解释器无法识别这种语法,直接抛出unexpected '='错误。
2. 连锁语法错误
因为第一个错误导致if语句的语法结构直接断裂,后续的}和else失去了正确的上下文,所以接连出现unexpected '}'报错。
修正后的代码
Adicao = "Adição" Subtracao = "Subtração" Multiplicacao = "Multiplicação" Divisao = "Divisão" print("Choice of operations:") cat("1.", Adicao, "\n") # 增加换行符优化输出格式 cat("2.", Subtracao, "\n") cat("3.", Multiplicacao, "\n") cat("4.", Divisao, "\n") escolha <- as.integer(readline(prompt="Enter your choice: ")) if(escolha == 1){ # 将赋值符号=替换为比较符号== print("Cool! You choose addition") } else { print("You didnt choose addition ") }
补充说明:你的代码中else与前一个}在同一行的写法是符合R语法要求的,如果将else单独换行写会触发新的语法错误,这部分你没有问题。
内容的提问来源于stack exchange,提问作者gabrielleAmbrosio
相关产品推荐
相关产品推荐

