我的程序没有正确结束循环

时间:2016-10-10 20:45:20

标签: java for-loop

我正在尝试使用ArrayList的“fizz buzz”问题。我的程序运行正常并按预期执行直到第n次迭代。假设输入值100。 “fizz buzz”执行到100并返回结果,但它正在进行额外的迭代并为ArrayList<String> numfb增加值

n=100额外20次迭代
for n=50额外10次迭代

据我所知,for循环应该在i<n之后结束,它是迭代次数和添加到数组列表中的值。

这是我的代码:

int i , n;
String temp;
Scanner input = new Scanner (System.in);
ArrayList<Integer> number=new ArrayList<Integer>();
ArrayList<String> numfb=new ArrayList<String>();
System.out.println("enter array range");
n=input.nextInt();
for(i=0; i<n; i++){
  number.add(i,i+1);
}
for(i=0; i<n ;i++){
  if(!( (number.get(i)) % 3==0) || ( (number.get(i)) % 5==0) ){
    temp=String.valueOf(number.get(i));
    numfb.add(i,temp);
  }
  if( (number.get(i)) % 5==0 && (number.get(i)) % 3==0 ){
    numfb.add(i,"FizzBuzz");
  }
  else if( (number.get(i) ) %3 == 0){
    numfb.add(i,"Fizz");
  }
  else if( (number.get(i) ) % 5 == 0 ){
    numfb.add(i,"Buzz");
  }
}
System.out.println(number);
System.out.println(numfb);

1 个答案:

答案 0 :(得分:0)

如果您在循环中处于第二个条件

,则错过了其他人
df[paste("X", month(df$date_var), sep = '')]