Как зациклить блок кода в Java-программировании - PullRequest
0 голосов
/ 19 ноября 2018

Я пишу код для отображения массива чисел в порядке возрастания.Я завершил первую часть, которая является фактическими командами для получения массива.Вторая часть состоит в том, что я должен инициализировать программу после того, как она упорядочит массив чисел.Вот мой код.

package ascendingorder;
import java.util.Scanner;

public class Ascending_Order 
{
    public static void main(String[] args) 
    {
        int n, temp;
        Scanner s = new Scanner(System.in);
        System.out.print("Enter no. of elements you want in array:");
        n = s.nextInt();
        int a[] = new int[n];

        System.out.println("Enter all the elements:");
        for (int i = 0; i < n; i++) 
        {
            a[i] = s.nextInt();
        }
        for (int i = 0; i < n; i++) 
        {
            for (int j = i + 1; j < n; j++) 
            {
                if (a[i] > a[j]) 
                {
                    temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
        System.out.print("Ascending Order:");
        for (int i = 0; i < n - 1; i++) 
        {
            System.out.print(a[i] + ",");
        }
        System.out.print(a[n - 1]);
    }
}

Когда код компилируется и выполняется, программа предлагает пользователю ввести размер массива, и при его вводе программа затем просит пользователя ввести элементы массива.,После этого пользователь нажимает клавишу ввода, и программа отображает результат в порядке возрастания.

После этого программа должна вернуться назад и предложить пользователю ввести размер массива, затем элементы и так далее.Кроме того, программа должна завершаться, когда пользователь вводит значение, например, «n» или «x».Пожалуйста, помогите мне с этой частью, так как у меня нет никакой идеи или как разместить цикл for, чтобы зациклить блок кода из 'System.out.print ("Введите число элементов, которые вы хотите в массиве:");».Спасибо.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Может быть полезна ссылка ниже

[ Java-программа для возврата к началу

boolean isRunning = true;
String tryAgain = "";

while (isRunning) {

 // All your code you have in your example.

 // Ask user if he wants to retry with a scanner.
 tryAgain = <use scanner here>;
 if (tryAgain.equals("no") || tryAgain.equals("No") ) isRunning = false;

}

Или

String tryAgain = "";

while (true) {

 // All your code you have in your example.

 // Ask user if he wants to retry with a scanner.
 tryAgain = <use scanner here>;
 if (tryAgain.equals("no") || tryAgain.equals("No") ) break;

}
0 голосов
/ 19 ноября 2018

Сначала у вас есть программа, принимающая nextInt, поэтому, если вы введете символы, это создаст исключение, вы должны вместо этого использовать nextLine, а затем проверить / проанализировать его. Что касается цикла, то будет работать простой цикл while, и не забудьте закрыть сканер в конце.

public static void main(String[] args) {
    String in;
    int temp, n;
    Scanner s = new Scanner(System.in);
    System.out.print("Enter no. of elements you want in array:");
    in = s.nextLine();
    while (!in.equals("x") || !in.equals("n")) {
        n = Integer.parseInt(in);
        int a[] = new int[n];
        System.out.println("Enter all the elements:");
        for (int i = 0; i < n; i++) {
            a[i] = s.nextInt();
        }
        for (int i = 0; i < n; i++) {
            for (int j = i + 1; j < n; j++) {
                if (a[i] > a[j]) {
                    temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
        System.out.print("Ascending Order:");
        for (int i = 0; i < n - 1; i++) {
            System.out.print(a[i] + ",");
        }
        System.out.print(a[n - 1]);
        in = s.nextLine();
    }
    s.close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...