Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 变量为';存储不正确吗?_Java - Fatal编程技术网

Java 变量为';存储不正确吗?

Java 变量为';存储不正确吗?,java,Java,我试图编写一些输出3,-6,9,-12等的代码。但是,输出是3,-6重复 public class Counting { public static void main (String [] args) { int i; int sum = 3; for (i = 0; i < 2500; i++) { System.out.println(sum);

我试图编写一些输出3,-6,9,-12等的代码。但是,输出是3,-6重复

public class Counting {                         
    public static void main (String [] args) { 
        int i;
        int sum  = 3;
        for (i = 0; i < 2500; i++) {
            System.out.println(sum);
            sum = (sum + 3) * -1;
            i++;
        }
    } 
}
公共类计数{
公共静态void main(字符串[]args){
int i;
整数和=3;
对于(i=0;i<2500;i++){
系统输出打印项数(总和);
总和=(总和+3)*-1;
i++;
}
} 
}

通过使sum=sum+3和sum为-6,它将使-6+3=-3,然后*-1 在这些情况下,你必须设定一个条件使+3或-3成为+3或-3使用:

public static void main (String [] args) { 
       int i;
       int sum = 3;
    for (i = 0; i < 2500; i++) {
       if(i%2==0) System.out.println(sum);
       else System.out.println(-1*sum);
       sum += 3;
 }
    }
publicstaticvoidmain(字符串[]args){
int i;
整数和=3;
对于(i=0;i<2500;i++){
如果(i%2==0)System.out.println(总和);
else系统输出打印项次(-1*总和);
总和+=3;
}
}
试试这个

  For(int i=1;I<2500;I++) 
     System.out.print(i%2==0?-3*i:3*i) 
For(inti=1;i这应该可以工作

public class Counting {  

public static void main (String [] args) { 
   int i;
   int sum  = 3;
   int c = 1
    for (i = 0; i < 2500; i++) {
    System.out.println(sum*c);
    sum += 3;
    c *= -1;
        }

    }
公共类计数{
公共静态void main(字符串[]args){
int i;
整数和=3;
int c=1
对于(i=0;i<2500;i++){
系统输出打印项次(总和*c);
总和+=3;
c*=-1;
}
}

}

如果相乘前
为正,则应减去
3
,如果相乘前为负,则应加
3
。可以使用三元运算符或
整数.signum
实现此操作。请注意,在
循环体的
中不应增加
i
,因为它是无论如何,我会在每次迭代结束时递增

请参阅下面的代码

publicstaticvoidmain(最终字符串[]args){
int i;
整数和=3;
对于(i=0;i<2500;i++){
系统输出打印项数(总和);
总和=总和*-1-整数。符号(总和)*3;
}
}

您的计算实际上取消了:

3+3*-1=-6

-6+3*-1=3

通过使用简单的
if/else
,您可以更轻松地完成此任务:

for (i = 0; i < 2500; i++) {
    if (i % 2 == 0) {
        System.out.println(3 * i);
    } else {
        System.out.println(-3 * i);
    }
}
(i=0;i<2500;i++)的
{
如果(i%2==0){
系统输出打印Ln(3*i);
}否则{
系统输出打印项次(-3*i);
}
}

不要更改
总和本身。更改乘数
mult
。这应该可以解决问题

public static void main(String args[]) { 
    int i;
    int sum  = 3;

    // Add this variable
    int mult = -1;

    for (i = 0; i < 2500; i++) {
        // Use mult while printing
        System.out.println(sum*mult);

        // Keep changing the sum
        sum = (sum + 3);

        // Keep alternating mult every iteration
        mult*=-1;
        i++;
    }
}
publicstaticvoidmain(字符串args[]){
int i;
整数和=3;
//添加此变量
int mult=-1;
对于(i=0;i<2500;i++){
//打印时使用mult
系统输出打印项次(总和*mult);
//继续改变总数
总和=(总和+3);
//在每次迭代中保持交替mult
mult*=-1;
i++;
}
}

请再次显示您的尝试。没有它,下面的答案就没有意义。事实上,对于所显示的作业来说,这些答案也没有意义。@如果OP似乎已将问题编辑成一个全新的问题,请回滚到原始问题,并创建一个名为“试图找到音节的数量"相反,你不应该在for-loop的主体中有一个i++。请花时间阅读堆栈溢出,特别注意关于好问题的部分,这将得到好的答案。你有很多问题没有得到很好的回答。如果这种趋势持续下去,你将面临被阻止发布的巨大风险继续提问。听取别人给你的建议,编辑你现有的问题,以符合网站的标准,并在以后提问时保持这些标准。
public static void main(String args[]) { 
    int i;
    int sum  = 3;

    // Add this variable
    int mult = -1;

    for (i = 0; i < 2500; i++) {
        // Use mult while printing
        System.out.println(sum*mult);

        // Keep changing the sum
        sum = (sum + 3);

        // Keep alternating mult every iteration
        mult*=-1;
        i++;
    }
}