Java循环遍历数组时跳过一个值 如何正确录入最后一位球员数据
问题根源
你的代码存在两处逻辑问题共同导致了该现象:
- 循环内的
if(y > 0)判断直接跳过了数组下标为0的元素的录入逻辑,当你录入4名球员时,y的取值范围是0~3,只有1、2、3三个值满足判断条件,自然只会触发3次录入 - 你直接把数组下标
y作为球员编号输出,数组下标最大为numplay-1,所以最多只会显示到player #3,不会出现你期望的player #4提示
修复方案
删除多余的if(y > 0)判断,输出球员编号时用y+1替换原有的y,将数组下标和面向用户的球员编号做偏移对齐即可,修复后完整代码如下:
import java.util.*; public class Main{ public static void main(String[]args) { Scanner x = new Scanner (System.in); System.out.print("Enter the number of players: "); int numplay = x.nextInt(); int players[]= new int[numplay]; for(int y=0;y<numplay ;y++) { System.out.print("Goals score by player #"+ (y+1) +": "); players[y]=x.nextInt(); } } }
运行该代码后,输入球员数量4时就会依次弹出4条录入提示,对应球员编号1~4,数组的4个位置都会被正确赋值,完全符合你的预期输出要求。
内容的提问来源于stack exchange,提问作者gunthelang
相关产品推荐
相关产品推荐

