Как использовать цикл while с массивами, которые вводятся пользователем - PullRequest
0 голосов
/ 30 сентября 2018

Я только начал изучать Java, и мне нужна помощь о том, как изменить программу, чтобы размер массива принимался как пользовательский ввод при использовании цикла while для проверки ввода, чтобы недопустимые целые числа были отклонены.

Кроме того, используя цикл while, берите ввод с клавиатуры и присваивайте значения каждой позиции массива.

Буду признателен за любую помощь!

Вот код:

double salaries[]=new double[3];
salaries[0] = 80000.0;
salaries[1] = 100000.0;
salaries[2] = 70000.0;

    int i = 0;
while (i < 3) {

        System.out.println("Salary at element " + i + " is $" + salaries[i]);
    i = i + 1;
}

Ответы [ 4 ]

0 голосов
/ 30 сентября 2018

Вы также можете использовать цикл for и использовать класс Scanner, который используется для ввода данных с клавиатуры.

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        System.out.println("Please enter the length of array you want");
        Scanner scanner = new Scanner(System.in);
        int length = scanner.nextInt();
        double salaries[]=new double[length];
        System.out.println("Please enter "+ length+" values");
        for(int i=0;i<length; i++){
            scanner = new Scanner(System.in);
            salaries[i] = scanner.nextDouble();
        }
        scanner.close();
    }
}
0 голосов
/ 30 сентября 2018

В java, если вы указали размер массива, вы не можете его изменить, поэтому вам нужно знать размер массива перед добавлением какого-либо значения, но вы можете использовать одну из реализаций List, как ArrayList, чтобы иметь возможность добавлять значенияне заботясь о размере массива.

Пример:

   List<Double> salarie = new ArrayList<Double>(); 
        while (i<N) { // this will  get exit as soon as i is greater than number of elements from user
            salarie.add(sc.nextDouble());
            i++; // increment value of i so that it will store in next  array 
        }

Пожалуйста, прочитайте эти статьи для более подробной информации: разница между ними-массив-против-ArrayList различие между ними, в емкости-оф-ан-массив-список-и-размера, из-ан-массива

0 голосов
/ 30 сентября 2018

вы можете использовать класс сканера для получения ввода от пользователя

Scanner sc=new Scanner(System.in);
System.out.println("Enter the number of elements");
int n=sc.nextInt();
double salaries[]=new double[n];
for(int i=0;i<n;i++)
{
   salaries[i]=sc.nextDouble();
}
0 голосов
/ 30 сентября 2018

Использовать цикл while и получать ввод от пользователя очень просто. Ниже приведен код, в котором вы поймете, как принимать ввод от пользователя и как работает цикл.поместите весь код в вашу функцию main(), импортируйте import java.util.Scanner;, выполните его и внесите изменения, чтобы понять код.

   Scanner sc= new Scanner (System.in); // this will help to initialize the key board input

            System.out.println("Enter the array element");
            int N;
            N= sc.nextInt(); // take the keyboard input from user 
            System.out.println("Enter the "+ N + " array element ");
            int i =0;
            double salaries[]=new double[N]; // take the array lenght as the user wanted to enter
            while (i<N) { // this will  get exit as soon as i is greater than number of elements from user
                salaries[i]=sc.nextDouble();
                i++; // increment value of i so that it will store in next  array element
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...