Да / Нет Цикл со Сканером - PullRequest
0 голосов
/ 18 мая 2019

Я пишу Java-программу, в которой начальная часть представляет собой сканер. Мне нужно, чтобы пользователь ввел имя папки, а затем программа должна подтвердить. Сканер задает соответствующий вопрос и принимает ответ. Затем мне нужно подтвердить Y или N. Y, программа продолжится. N, мне нужен код, чтобы вернуться назад и снова задать первый вопрос. Я искал вокруг, и я вижу ряд решений для целых чисел, но не для текста.

import java.util.Scanner;

public class webSiteGenerator {

    public static void main(String[] args) {
        Scanner obj = new Scanner(System.in);
        System.out.println("Please enter a source folder: ");
        String sourceFolder = obj.nextLine();

        System.out.println("You have selected the folder '" + sourceFolder + "'. Are you sure (Y/N)");
        String confirmation = obj.nextLine();
        while (!"Y".equalsIgnoreCase(confirmation) && "N".equalsIgnoreCase(confirmation)) {
               System.out.println("Response not recognised.  Please confirm... Are you sure (Y/N)");
               confirmation = obj.next();
        }




    }

}

1 Ответ

0 голосов
/ 18 мая 2019

Реакция "Y" и "N" будет сохранена в string sourceFolder, поэтому вам просто нужно сравнить string sourcFolder с Y и N.

твой код будет таким:

int flag = 0;
    while (flag!=1){
      if(sourceFolder.equals("Y") ||   sourceFolder.equals("y")){
         //Your Code 
          flag=1;
    }else if((sourceFolder.equals("N") || sourceFolder.equals("n")){
           flag=1;
    } else{
         print("Invalid Input! Please choose  only between  Y or N ");
         flag=1;
    }

    }

P.S flag фактически используется для выхода из условия while. Вы можете использовать любое слово вместо flag.

Спросите, если что-то вызывает сомнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...