Подскажите, как сделать так чтобы программа срабатывала заново?
Java изучаю буквально пару дней, ещё толком ничего не знаю, сидел решал задачу и в голову пришла мысль почему бы не написать программку которая будет выкидывать 2 рандомно сгенерированных числа и просить ответ, всё сделал, но встретился с проблемой. После того как я ввожу ответ программа говорит "правильно" или "не правильно" и после чего просто заканчивает свою работу. Мне нужно сделать так чтобы программа вновь выдавала 2 числа и просила ответ. Пожалуйста объясните как это можно сделать? Код прилагаю.
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] array;
array = new int[2];
for (int i=0; i<array.length; i++){
array[i] = (int) (Math.random() * 10);
}
int a = array[0];
int b = array[1];
int c = a + b;
System.out.println("\nВведите ответ:\n");
System.out.println(array[0] + " + " + array[1] + " = ");
int input = in.nextInt();
if (c == input){
System.out.println("Правильно");
}
else {
System.out.println("Не правильно");
}
}
}
Ответы (2 шт):
Сделать так, чтобы программа постоянно выдавала 2 случайных числа нельзя. Точнее можно, но это будет бесконечный цикл и программа не завершит свою работу самостоятельно. С помощью цикла while можно добавить условие, например, если количество правильных ответов равняется 5, то завершить выполнение. Для этого нужно будет создать переменную int counter (например), которая будет хранить значение кол-ва правильных ответов.
Проще говоря, вам нужно написать код с таким условием, чтобы программа могла понять, когда ей нужно остановится.
Ваш цикл for присваивает положительные числа... могу предложить вариант do while. Пример кода. import java.util.Scanner;
public class TestMain {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int input;
int[] array;
array = new int[2];
do {
for (int i = 0; i < array.length; i++) {
array[i] = (int) (Math.random() * 10);
}
int a = array[0];
int b = array[1];
int c = a + b;
System.out.println("\nВведите ответ:\n");
System.out.println(array[0] + " + " + array[1] + " = ");
input = in.nextInt();
if (c == input) {
System.out.println("Правильно");
} else {
System.out.println("Не правильно");
}
} while(input > 0 );
}
}
.т.е. пока твои ответы больше 0 - цикл будет повторяться. как только надоест введи отрицательное число (-1 к примеру) программа выдаст "не правильно" и завершится. тут еще важно объявить переменную input до цикла. (почитай про области видимости). Условия можете придумывать сами, на что фантазии хватит))