多次初始化时for循环出错

时间:2015-10-06 20:15:12

标签: java loops for-loop

我试图这样做: Question

我在for循环中遇到错误: for(int i = b,int j = 0; i <2 * b,j

我的方法是将所有差异存储在一个数组中,我们通过减去初始值,最后一个值和分区得到它。

出了什么问题以及替代方法是什么?

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        int a, b;
        Scanner in = new Scanner(System.in);
        a= in.nextInt();
        b= in.nextInt();
        in.nextLine();
        int[] ar = new int[b];

        for(int i=0;i<b;i++)
            {
            ar[i]= in.nextInt();
        }

        int[] ar2 = new int[a];
        // I m trying to get the values which can be obtained from each partition
        for(int i=0;i<b;i++)
            {
            ar2[i] = a - ar[i];
            }



       for(int i=b,int j=0;i< 2*b, j<b; i++, j++)
          {
           ar2[i] = ar[j];
        }


        for(int i=0;i<a;i++)
            {
            System.out.print(ar2[i]+" ");
            }


    }
}

1 个答案:

答案 0 :(得分:1)

这是您收到的编译错误吗? 这个特定的行不遵循Java语法:

for(int i=b,int j=0;i< 2*b, j<b; i++, j++)

例如,你在for循环中有2个int声明是不可能的:

int i=b,int j=0;

必须重写为:

int i=b, j=0;

在条件部分,无法设置以逗号分隔的多个条件。你可以做的是使用逻辑运算符来组合2个条件表达式 - 使用||或&amp;&amp;

i< 2*b, j<b;

必须重写为:

for(int i=b, j=0;i< 2*b && j<b; i++, j++)

或者这个:

for(int i=b, j=0;i< 2*b || j<b; i++, j++)