java - 有没有办法在Java中制作交替的正负数序列?
问题描述
我想知道是否有一种方法可以使用条件语句和循环或嵌套循环在 Java 中创建交替的正负数序列。如果他们输入了更高的数字,我希望我的输出是这样的:1、-2、3、-4、5 等等。这就是我现在所拥有的,它只打印正数。请注意,我也在使用扫描仪,以便可以对其进行自定义。
System.out.println("Enter a number:");
int num2 = scan.nextInt();
for (int i = 1;i <= num2;i++) {
System.out.print(i+" ");
}
解决方案
想想简单的数学。你给出的例子有奇数正数和偶数负数 - 1、-2、3、-4、5、-6 ......所以就像安迪·特纳评论的那样:
i * ((i % 2 == 0) ? -1 : 1.)
模运算符也是如此%
,它将为您提供除法的余数,例如,2 / 2 是 1 余数为 0,3 / 2 是 1 余数为 1。三元运算符() ? true : false
计算 the 之前的表达式,?
如果为真,则产生冒号之前的值,如果为假,则产生冒号之后的值。
现在,如果您不一定希望这与偶数/奇数有关,则可以保留一个乘数:
int num2 = scan.nextInt();
for (int i = 1, sig = 1; i <= num2; i++, sig = sig * -1) {
System.out.print(Integer.toString(i * sig));
}
乘以 -1 每次都会翻转符号。