在“for”循环中添加指定次数的重复整数

时间:2015-07-07 14:42:05

标签: java

我正在寻找一种运行“for”循环的方法,该循环将以用户定义的值“d”(1到7之间)开始,并连续加1,直到达到其他用户定义的值“n”。这就是问题......一旦达到值“7”,我需要它将计数重复回“1”而不会陷入无限循环。

例如,我的程序提示用户输入2个数字,并将它们分别存储为“d”和“n”。第一个数字可以是“1-7”,第二个数字可以是任何数字。因此,如果用户输入“5”和“10”,我需要我的循环开始在“6”计数并向上计数“10”次,一旦值达到“7”则从“1”开始。看起来应该是...... “6 7 1 2 3 4 5 6 7 1”。

现在我看起来像这样...... “6 7 8 9 10 11 12 13 14 15”

这是我当前的代码和输出“5 = d”和“10 = n”

代码

public void incrementDay3()
{ 
  int i;

  for(i = (d + 1);i <= (d + n);i++)
  {
     System.out.print(i);
  }
}

输出

“6789101112131415”

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:8)

试试这个(模运算符):

public void incrementDay3()
{ 
    int i;
    for(i = d ; i < (d + n) ; i++)
    {
        System.out.print((i % 7) + 1);
    }
}

有关模数的详细信息,请查看此wikipedia article

答案 1 :(得分:0)

public void incrementDay3()
{
    int i;
    int d = 5, n = 10;

    int result;
    result = d + 1;

    for(i = result;i <= (d + n);i++)
    {
        result++;
        if(result > 7)
            result = 1;
        System.out.print(result);
    }
}

答案 2 :(得分:0)

我发现这个变体更容易阅读。特别是,“简单的for循环,只计入n”是可以立即识别的,并且比当前最佳答案中的循环条件更容易解析。

public static void incrementMod7(int d, int n) {
    for (int i=0; i<n; i++) {
        d = (d%7) + 1;
        System.err.print(d + " ");        
    }
}

答案 3 :(得分:0)

int d=5;
for (int i = 0; i < 10; i++) {
  d =(d==7)?1:d+1;
  System.out.println(d);
}

容易。