Помогите пожалуйста! Необходимо, чтоб при вводе пользователем цифры 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("Конец программы!");
}
}
Java
Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?
Событие на нажатие этой кнопки создай
если ещё актуально то вот
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" +
"Конец программы!");
}
}
чистый код без комментов в комментах (каламбур однако), сюда не влезает
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" +
"Конец программы!");
}
}
чистый код без комментов в комментах (каламбур однако), сюда не влезает
Похожие вопросы
- Прошу помощи код Java
- Подскажите, пожалуйста, нужен ли вообще диплом о высшем образовании программисту на JAVA?
- Простейший код java вопрос
- Хочу пойти учиться на программиста сижу и думаю какой язык выбрать? Подскажите пожалуйста.
- Как для андроид, в java коде, имитировать нажатие кнопки
- Работа со строками Java Разработать программу, которая вводит строку и находит все слова указанной длины n (n вводится).
- JAVA. Помогите, пожалуйста, дописать код программы:
- Помогите доделать код на java. В форму пользователь вводит символ, который нужно заменить на #.
- Не запускается код на Java.
- Идти в колледж и учится ещё 3 года или уже искать работу на java с онли средним образованием?
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();
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" +
"Конец программы!");
}
}