You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言使用while循环录入5个数字并输出偶数的代码修复问题

R代码修复方案

原有代码异常原因解释

你输入5后代码执行逻辑如下:

  1. 赋值item=5,判断5<=6成立进入循环
  2. 先打印item的值5
  3. 执行item <- item +1,此时item更新为6
  4. 判断6%%2==0为真,触发break直接终止循环,程序结束
    因此最终只会输出5,完全不符合你录入5个数值、筛选偶数的需求。

原有代码核心问题

  • 仅执行了1次readline()录入操作,没有循环录入5次的逻辑
  • 循环条件item <= 6、自增逻辑item <- item +1和录入多值的需求完全不匹配
  • 遇到偶数就终止程序的break逻辑完全错误,你需要的是筛选保留偶数而非停止运行

修复后可用代码

# 初始化空向量存储录入的数值
num_vec <- c()
# 循环5次完成数值录入
for (i in 1:5) {
  input_num <- as.integer(readline(prompt = paste0("请输入第", i, "个数值:")))
  num_vec <- c(num_vec, input_num)
}
# 筛选所有偶数并输出
even_num <- num_vec[num_vec %% 2 == 0]
print("录入数值中的所有偶数如下:")
print(even_num)

代码逻辑说明

  • 先创建空向量num_vec用于存储后续录入的5个数值
  • 通过for循环固定执行5次录入操作,确保收集到要求数量的输入
  • 最后用R向量取子集的语法,直接筛选出所有能被2整除的偶数输出,不需要额外判断分支

内容的提问来源于stack exchange,提问作者Cristian Mark Sagpao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 07:06:07