-3
import java.util.Arrays;

public class Arrays2 {

  public static void main(String[] args){
    int [] array = {1,2,10,20};

    addUp(array);
    showUp(array);
  }

  public static void addUp(int x[]){
    System.out.println("AddUp Function");
    for (int i = 0; i < x.length; i++){
      System.out.print(x[i]+"\t");
    }
    System.out.println ("\n");

  }

  public static void showUp(int y[]){
    System.out.println("ShowUp Function which Multiplies by 2!");
    **If(array[] >= 10)**
    for (int k = 0; k < y.length; k++){
      System.out.print(y[k]*2+"\t");
    }
  } 
}

如何在数组中应用 if-else 语句?在我的 showUp 方法中,如果值大于 10,它应该将数组中的元素相乘。

4

4 回答 4

6

你可能想要这样的东西:

for (int k = 0; k < y.length; k++) {
    if (y[k] >= 10) {
        System.out.print(y[k] * 2 + "\t");
    }
}

您编写的内容与filter其他一些编程语言中的 a 相似,但 Java 没有这些. 您必须迭代数组并在循环if使用检查。


更新:从 Java 8 开始,Java确实Stream.filter

int[] array = {1, 2, 10, 20};
IntStream.of(array)
        .filter(x -> x >= 10)
        .forEach(System.out::println);
于 2013-10-11T14:01:03.520 回答
3

这个片段甚至不会编译:

public static void showUp(int y[]){
    System.out.println("ShowUp Function which Multiplies by 2!");
    If(array[] >= 10)
        for (int k = 0; k < y.length; k++){
            System.out.print(y[k]*2+"\t");
        }
} 

首先,if在Java中是小写的,而Java是区分大小写的。其次,方法中没有array变量showUp。第三,array[]是无效的语法。

您是否尝试检查数组的长度y- 方法参数?然后你需要这样做:

public static void showUp(int y[]){
    System.out.println("ShowUp Function which Multiplies by 2!");
    if (y.length >= 10)
        for (int k = 0; k < y.length; k++){
            System.out.print(y[k]*2+"\t");
        }
} 

再三考虑,长度不能大于 10,所以请检查@tobias_k 的答案——他似乎是对的。

于 2013-10-11T14:01:38.203 回答
1

你想这样做吗?

if(arr[i] > 10 )
{
    arr[i]=arr[i]*2;
}
you can do this 
于 2013-10-11T14:02:14.743 回答
0

你需要使用 .length

public static void showUp(int y[]){
    System.out.println("ShowUp Function which Multiplies by 2!");
    if (y.length >= 10)
        for (int k = 0; k < y.length; k++){
            System.out.print(y[k]*2+"\t");
        }
} 
于 2013-10-11T15:23:12.270 回答