1

ユーザーからの入力で満たされた配列があり、それを印刷する必要があります。試してみましたが、奇妙な結果が得られます。最初に、入力する要素の数を入力し、次に要素を入力してから、それらを印刷します。

例:入力しまし5 10 23 77 105 た そして、次のように印刷する必要があります:Elements: 5 10 23 77 105

また"INVALID INPUT"、ステートメントにはfalseありますが、ステートメントに混在していtrueます。

これが私がこれまでに試したことです:

import java.util.*;
import java.util.ArrayList;

public class LinearSearch {

    public static void main(String[] args) {
        int choice;
        Scanner in = new Scanner(System.in);
        System.out.println("Choose between INT(1) --- DOUBLE(2) --- STRING(3) --:");
        choice = in.nextInt();

        if(choice == 1) {
            choice(args);
        }
    }

    public static void choice(String[] args) {
        int num;
        int repeat;
        Scanner in = new Scanner(System.in);

        System.out.println("Enter the number of elements in the array");
        num = in.nextInt();

        int array[] = new int [num];

        for (int i = 0; i < array.length;  i++) {
            System.out.print("Enter the number at array index"+i+": ");
            array[i] = in.nextInt();
        }

        System.out.print("Do you want to search if the number is present in the array? YES = 1 , No = 2: ");
        int answer = in.nextInt();

        if (answer == 1) {
            Linear(array);
        }

        if (answer == 2) {
            System.out.println("Thank you for using the program");
        }   

        if (answer >= 3) {
            System.out.println("Invalid Input");
        }

        System.out.print("\nDo you want to repeat the program? Yes = 1 --- No = 2: --- ");
        repeat = in.nextInt();

        if(repeat == 1) {   
            main(args);

        }

        if (repeat == 2) {
            System.out.println("Thank you again ! ! !");
            System.out.println("Thank you again ! ! !");
            System.out.println("Thank you again ! ! !");
            System.out.println("Thank you again ! ! !");
            System.out.println("Thank you again ! ! !");
            System.out.println("Thank you again ! ! !");
            System.out.println("Thank you again ! ! !");

        }
    }

    public static void Linear(int array[]) {
        int key;
        Scanner in = new Scanner(System.in);

        System.out.print("Enter a number that you want to search: ");
        key = in.nextInt();

        for(int i = 0; i < array.length; i++) {
            if (array[i] == key) {
                System.out.println("Elements: " + array);
                System.out.println("Element " + key + " is found at index: " + i);
            } else {
                System.out.println("INVALID INPUT");
            }
        }
    }
}
4

1 に答える 1

2

Array を List と呼ぶべきではありません。これは非常に紛らわしいです。たとえば、 を印刷するArrayList場合、コードは意図したとおりに機能します。

しかし、配列を使用しているため、代わりに

System.out.println("Elements: " + array);

使用する

System.out.println("Elements: " + Arrays.toString(array));
于 2016-02-17T07:14:26.290 に答える