1-lenght的话返回的x也只剩一个数了,
我研究了下发现这样写应该行

sumfor <- function(x){
a <- numeric(0)
m <- 1
b <- 1
for(i in x){
if((class(i) != 'numeric') & (class(i) != 'interge')) {
print('请输入一个数值型向量')
} else {
if(length(x)%%2 != 0){
x <- x[1:(length(x)-1)]
a[b] <- x[m]+x[m+1]
b <- b+1
m <- m+2
if(m>=length(x)){
break
}
} else{
a[b] <- x[m]+x[m+1]
b <- b+1
m <- m+2
if(m>=length(x)){
break
}
}
}
}
print(a)
}
sumfor(c(1,5,4,6,7))