Java程序。如何循环我的" isLucky"通过我的阵列的方法?另外,如何在main方法中正确打印结果?

时间:2014-04-04 01:12:11

标签: java arrays loops compilation

首先,我的程序没有编译。有任何想法吗?我不知道为什么,我的Eclipse程序还没有工作......

另外,我如何得到我的" isLucky"遍历我的数组的方法?
我是否在主方法中正确打印出结果?

import java.util.Scanner;

public class FunArrays {

    public static void main(String[] args) {

        luckyNumber1 = 7;
        luckyNumber2 = 13;
        luckyNumber3 = 18;


        int[] a=new int[10];
        Scanner sc=new Scanner(System.in);
            System.out.println("Please enter numbers...");
            for(int j = 0; j < a.length; j++)
            a[j] = sc.nextInt();

        boolean b = isLucky(a);

            int result; 

            if(b)
                result = sum(a);
            System.out.println(sum(a))
            else
                result = sumOfEvens(a);
            System.out.println(sumOfEvens(a))
    }

    public static int sum(int [ ] value)  
    {
          int i, total = 0;
          for(i=0; i<10; i++)
          {
              total = total + value[ i ];
          }

          return (total);
    }
    static int sumOfEvens(int array[]) 
    {
    int sum = 0;
    for(int i = 0; i < array.length; i++) {
        if(array[i] % 2 == 0)
            sum += array[i];
    }
    return sum;
    }
    public static boolean isLucky (int[] array) 
    {

        if ( array[i] == 7 || array[i] == 13 || array[i] == 18 )
            return true; 

        else
            return false;
    }

    // write the static methods isLucky, sum, and sumOfEvens

}

2 个答案:

答案 0 :(得分:0)

您的编译器错误'else' without 'if'是因为您有类似这样的内容:

if(isOkay)
   doSomething();
   andThenDoSomethingElse();
else
   doAnotherThing();
   andEvenSomethingElse();

你必须将每个块放在花括号中,如下所示:

if(isOkay)  {
   doSomething();
   andThenDoSomethingElse();
}  else  {
   doAnotherThing();
   andEvenSomethingElse();
}

我强烈建议在所有if s(以及whilesfor及其他所有内容中使用大括号),即使只有一个语句也是如此。

可以在此问题中找到更多信息: Else without if

答案 1 :(得分:0)

老实说,没有规定我们必须使用代码块。语法通常表示,在我们读取之后,如果您的条件包含多个语句,我们只查找一个语句,那么我们必须阻止该代码,另一件事是在您输入方法条件然后语句时尝试保留该缩进。我喜欢写简单的路线来获得你想要的输出。想想你为什么要发送这些方法数组?什么阻止你简单地循环你的main方法并将每次迭代传递给这些方法总结幸运,甚至......你的变量通常应该在方法的顶部或开头初始化,以便在方法执行的生命周期中使用它们.Below显然不是编译就绪的代码,但是这将使你在正确的地方找到理解这个问题而不是使用括号。

boolean isLucky;
int[] IntegerArray;
Scanner scan;
//Final for constant values Typically these would be in all uppercase to indicate to
//other that this is a final anywhere 
//in this class those will stick out.
final int luckyOne = 7;
final int luckyTwo = 13;
final int luckyThree = 18;

for(int i=0;i<IntegerArray.length;i++){
    //snag me Boolean value for this number
    isLucky();
    if(isLucky)//example of completely legal if statement adding a system.out statement 
               //means yes i have to block this
        sum(i);
    else
        even(i);


}