簡體   English   中英

我怎樣才能做多個循環?

[英]how can i make multiple loops?

我正面臨着 java 數組循環的問題,這就是問題所在

使用下面的空間編寫 main 方法,該方法將 5 個整數值讀入名為 list 的數組中。 然后,使用數組輸出正值后跟負值並忽略零。

Sample Output
Enter 5 numbers: 10 -3 0 -4 9
List: 
10
9
-3
-4

這就是答案:

int [] list = new int[5];
// 1pt
Scanner read = new Scanner (System.in);

// 3pts
System.out.println("Enter 5 numbers:");
for (int i = 0; i < list.length; i++)
    list[i] = read.nextInt();

// 3 pts
for (int i = 0; i < list.length; i++)
    if (list[i] > 0)
        System.out.println(list[i]);

// 3 pts
for(int i = 0; i < list.length; i++)
    if (list[i] < 0)
        System.out.println(list[i]);

但如果你找到我,我不知道如何讓它們一起工作

使用 Java8 的最簡單方法是這樣

    Integer [] list = new Integer[5];
    Scanner read = new Scanner (System.in);
    System.out.println("Enter 5 numbers:");
    for(int i=0; i<list.length;i++)
     list[i] = read.nextInt();

    List<Integer> newList = Arrays.asList(list).stream().filter(x -> x !=0).collect(Collectors.toList());
    Collections.sort(newList,(a,b) -> {
        if(a>b)
            return -1;
        else if(b>a)
            return 1;
        else 
            return 0;
    });
    System.out.println(newList);

您可以在 Java 中使用 Stream filter() 來根據您的需要獲取元素,這里我們將檢查值是否不等於 0 (s-> s != 0) ,這里我們在 Java 8 中使用 lambdas。

    int [] list = new int[5];
    Scanner read = new Scanner (System.in);
    System.out.println("Enter 5 numbers:");
    for (int i = 0; i < list.length; i++) {
      list[i] = read.nextInt();
      if(i == 4)
        list = (Arrays.stream(list).filter(s -> s != 0).toArray());
    }
    System.out.println(Arrays.toString(list));

Java Stream filter()使用 lambda 過濾數組

您可以使用以下代碼片段對數組進行排序,然后顯示它並在其間放置一個條件,用於檢查數組的元素是否為0

    for(int i = 0 ; i <= 5 ; i++){
        if(i < 5){
            System.out.println("Enter 5 numbers:");
            for (int i = 0; i < list.length; i++)
                list[i] = read.nextInt();
            continue;
        }
        for(int j = i ; i < 10 ; j++){
            if(list[i] > list[j]){
                int temp = list[i] ;
                list[i] = list[j] ;
                list[j] = temp ;
            }
        }
        if(i == 5){
            for(int j = 0; j < 5; j++){
                if(list[i] != 0)
                    System.out.println(list[i]);
            }
        }
    }

我想這就是你想要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM