在java中翻转标志的计数器

Bob*_*Bob 1 java algorithm math performance counter

好吧,所以我试图制作一个程序,我需要让计数器从-3开始,然后下降2,但每个其他数字必须是正面的:例如:

-3,5,-7,9,-11,13,-15,17,-19,......

任何输入?

我做了一个成功的计划,但我觉得这不是很有效.

    while ("expression")
    {
        if (j % 4 == -1) //checks if number should be negative
            j = Math.abs(j);

        if (j > 0) //makes counter a negative
            j = -j;

        j -= 2; //goes down by 2
    }
Run Code Online (Sandbox Code Playgroud)

Kep*_*pil 10

您可以使用for循环和signSwitcher变量:

int signSwitcher = 1;
for (int x = -3; expression; x -= 2, signSwitcher *= -1) {
    int counter = x * signSwitcher;
}
Run Code Online (Sandbox Code Playgroud)

  • 你的中期是表达.for(initializer; boolean expression; update); 您可以使用与while循环相同的表达式.for(int i = 0; true; i + = 2)与int i = 0相同; 而(true){i + = 2; } (3认同)
  • 轻微的狡辩 - 变量名称"shifter"让我在你的代码中寻找>>或<<.IMO,它应该被称为"标志".可能是英语/瑞典语.:-) (2认同)

use*_*300 7

Geez,你们这些人都在想得太辛苦了.显而易见,可读性有什么问题

if (counter > 0)
   counter = -1*(counter+2);
else
   counter = -1*(counter-2);
Run Code Online (Sandbox Code Playgroud)