Java

Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?

Помогите пожалуйста! Необходимо, чтоб при вводе пользователем цифры 3 данный код завершал свою работу.

import java.util.Scanner;//позволяет пользователю вводить данные в консоль
import java.io.FileReader;//
import java.io.IOException;

public class Main {
String[] start(String[] arrAll) throws IOException{
FileReader fr = new FileReader("/users/edgar/IdeaProjects/iftest2/Words10000.txt");//тут указываем путь к файлу
Scanner scan = new Scanner(fr);
int x = 0;
while(scan.hasNextLine()){
String line = scan.nextLine();
arrAll[x] = line;
x = x + 1;
}
fr.close();
return arrAll;
}

boolean proc(boolean Proc, String [] arr_1) throws IOException{
try {
Scanner input = new Scanner(System.in);
Main proc_bool = new Main();

while (Proc) {
System.out.println("Знаете ли вы слово: ");
System.out.println(arr_1[0]);
System.out.println("1 - Я знаю это слово! \n2 - Я пока не знаю этого слова\n3 - Выход");

int SelectPlay = input.nextInt();
if (SelectPlay == 1) {
System.out.println("Очень хорошо! Идем дальше");
}
else if (SelectPlay == 2) {
System.out.println("Позже вернемся к этому слову");
}
else if (SelectPlay == 3) {
System.out.println("Конец");
//break;
return false;
}
else {
System.out.println("Введите 1, 2 или 3");
System.out.println("<-------------------------------------------->");
continue;
}
}

}

catch (Exception e){
System.out.println("ЕСТЬ!");
}

return false;
}

public static void main(String[] args) throws IOException {

Main process = new Main();
String [] arr_1 = new String[9999];
process.start(arr_1);
System.out.print("Начнем! \n\n");
boolean Proc = true;
while (Proc){
System.out.println(Proc);
process.proc(Proc, arr_1);

}

System.out.println("<-------------------------------------------->");
System.out.println("Конец программы!");
}
}
EB
Eroxa Beket
2 777
Событие на нажатие этой кнопки создай
Андрей Черноусов
Андрей Черноусов
4 807
Лучший ответ
если ещё актуально то вот

import java.util.Scanner;
import java.io.FileReader;
import java.io.IOException;

public class Main {
String[] start(String path) throws IOException {
FileReader fr = new FileReader(path);//тут указываем путь к файлу // зачем, передавайте его как аргумент
Scanner scan = new Scanner(fr);
String[] arrAll = new String[9999];//хотя я бы докинул количество слов на первую строку в файл и на её основе задавал бы размер массива
int x = 0;

while(scan.hasNextLine()) {
String line = scan.nextLine(); // если вы не делаете обработку слов то зачем дополнительная переменная?
arrAll[x] = line; // замените эти две строки на ту что закоменчена ниже
//arrAll[x] = scan.nextLine();
x++; //вы пишете по одному элементу
}
scan.close();
fr.close();
return arrAll;
}

void proc(String [] arr_1) throws IOException {
try {
int SelectPlay = -1;
Scanner input = new Scanner(System.in);
//Main proc_bool = new Main(); //эм а зачем?

System.out.printf("Управление: %n1 - Я знаю это слово! %n2 - Я пока не знаю этого слова%n3 - Выход%n%n");
while (true) {
System.out.printf("Знаете ли вы слово: %s%n", arr_1[0]);
/*
не хорошо заводить в цикле переменные
представьте что у вас он выполняется дохpeнa раз в секунду и каждый раз -4 байта из оперативки...
мелочь но она может угрохать вам день, тем более что у Java GC не такой уж шустрый
*/
/*int */SelectPlay = input.nextInt();
// вообще это можно через switch case сделать ну да ладно
if (SelectPlay == 1) { System.out.println("Очень хорошо! Идем дальше"); continue; /*и мы идем дальше а не сидим тут*/ }
if (SelectPlay == 2) { System.out.println("Позже вернемся к этому слову"); continue; }
if (SelectPlay == 3) { System.out.println("Конец"); break; }
/*
break - выход из текущего цикла, не из всех сразу
return - возврат из функции

однако вы повесили while(true) в двух местах, здесь и ещё в main
и отсюда вы вываливались, но снова сюда заходили т. к. while(true) в main крутил вызов этой функции
а теперь нам достаточно break;

к слову вам помог бы в данной ситуации System.exit(0);
он завершает всю программу, а 0 это код штатного завершения
*/

// теперь нам не надо ни else ни что либо ещё - если мы сюда дошли значит ни одно услови небыло выполнено
// да и continue здесь уже бессмысленно
System.out.printf(
"Введите 1, 2 или 3%n" +
"<-------------------------------------------->%n");
}
}
catch (Exception e) {
//System.out.println("ЕСТЬ!"); //а что есть?
System.out.printf("Exception occurred: %s%n", e);
}
}

public static void main(String[] args) throws IOException {
//простите но я немного подкомпактил ваш код :)
Main process = new Main();
System.out.printf("Начнем! %n%n%n");
// %n это перенос строки в зависимости от платформы (на маке помоему \n не сработает), но работает только при форматированном выводе (printf, format, out)
process.proc(process.start("/users/edgar/IdeaProjects/iftest2/Words10000.txt"));
System.out.printf(
"<-------------------------------------------->%n" +
"Конец программы!");
}
}

чистый код без комментов в комментах (каламбур однако), сюда не влезает
IM
Ivan Mironov
5 038
Ivan Mironov import java.util.Scanner;
import java.io.FileReader;
import java.io.IOException;

public class Main {
String[] start(String path) throws IOException {
FileReader fr = new FileReader(path);
Scanner scan = new Scanner(fr);
String[] arrAll = new String[9999];
int x = 0;

while(scan.hasNextLine()) { arrAll[x] = scan.nextLine(); x++; }
scan.close(); fr.close(); return arrAll;
}

void proc(String [] arr_1) throws IOException {
try {
int SelectPlay = -1;
Scanner input = new Scanner(System.in);

System.out.printf("Управление: %n1 - Я знаю это слово! %n2 - Я пока не знаю этого слова%n3 - Выход%n%n");
while (true) {
System.out.printf("Знаете ли вы слово: %s%n", arr_1[0]);
SelectPlay = input.nextInt();
Ivan Mironov if (SelectPlay == 1) { System.out.println("Очень хорошо! Идем дальше"); continue; }
if (SelectPlay == 2) { System.out.println("Позже вернемся к этому слову"); continue; }
if (SelectPlay == 3) { System.out.println("Конец"); break; }

System.out.printf(
"Введите 1, 2 или 3%n" +
"<-------------------------------------------->%n");
}
}
catch (Exception e) {
System.out.printf("Exception occurred: %s%n", e);
}
}

public static void main(String[] args) throws IOException {
Main process = new Main();
System.out.printf("Начнем! %n%n%n");
process.proc(process.start("/users/edgar/IdeaProjects/iftest2/Words10000.txt"));
System.out.printf(
"<-------------------------------------------->%n" +
"Конец программы!");
}
}