package chapter5;
import java.util.Scanner;
public class Exercise5 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int min = 1;
int max = 10;
int one = (int) (Math.random() * (max - min)) + min;
int two = (int) (Math.random() * (max - min)) + min;
int num = (int) (4* Math.random()+1);
char operator = 0;
switch (num)
{
case 1: operator = '+';
break;
case 2: operator = '-';
break;
case 3: operator = '*';
break;
case 4: operator = '/';
break;
}
System.out.println("What is " + one + " " + operator + " " + two + "?");
double ans = 0;
double ans1 = 0;
ans = input.nextDouble();
if (num == 1) {
ans1 = one + two;
} else {
if (num == 2) {
ans1 = one - two;
} else {
if (num == 3) {
ans1 = one * two;
} else {
if (num == 4) {
ans1 = one/two;
}
}
}
if (ans == ans1) {
System.out.println("Correct!");
} else {
if (ans != ans1) {
System.out.println("incorrect");
}
}
}
}
}
Так что я пытаюсь создать приложение, которое генерирует вопрос, и вычисляет, если ваш вход является правильным или неправильным, так далеко от всех моих тестов, когда исправить это показывает правильная вещь, но когда она неверна, приложение завершается.Math программа репетитор обыкновение показывать «неправильно»
подсказка: попытайтесь распечатать '' ans' и ans1', чтобы увидеть разницу –
Формат кода правильно, и вы найдете причину самостоятельно. – Codebender
Не нужно использовать 'if' после или внутри else. Например, в разделе, где вы проверяете правильность ответа или нет, вам не нужен блок 'if (ans! = Ans1) ...' inside 'else'. Поскольку вы сначала проверяете, равны ли они, ключевое слово 'else' автоматически устанавливает условие, если они неравны. Вы можете устранить много избыточного кода в своей программе, если вы удалите ненужные операторы if внутри блоков else. Это облегчит вам чтение и прохождение вашего кода. –