Таким образом, этот код запрашивает ввод либо 1 для прохода, либо 2 для отказа для десяти учеников, и он показывает ошибку, если пользователь вводит неверный номер. Логическая ошибка в этом случае, например, все 10 студентов проходят, выход должен быть «принят: 10 Failed: 0». Однако, если я введу ошибку только один раз, появится сообщение об ошибке, но выход будет " прошло: 9 не удалось: 0 «даже думал, что все 10 студентов прошли.Проект Java: количество студентов, которые прошли или не прошли? Логическая ошибка
import javax.swing.JOptionPane;
public class pass {
public static void main(String[] args) {
int passes = 0;
int failures = 0;
int result;
for (int studentCounter = 1; studentCounter <= 10; studentCounter++) {
String input = JOptionPane.showInputDialog("Enter (1=pass, 2= fail)");
result = Integer.parseInt(input);
if (result == 1) {
passes = passes + 1;
} else if (result == 2) {
failures = failures + 1;
} else if ((result != 1) && (result != 2)) {
JOptionPane.showMessageDialog(null, "Error input 1 or 2");
}
}
JOptionPane.showMessageDialog(null, "Passed:" + passes + "Failed:" + failures);
System.exit(0);
}
}
При возникновении ошибки вы не должны увеличивать значение 'studentCounter'. Самый простой способ добиться этого - сделать «studentCounter -» после диалога с ошибкой. – Thilo
, поэтому ошибка должна быть вне цикла? –
Прежде всего, вы должны использовать соглашения Oracle Java Code Console http: //www.oracle.com/technetwork/articles/javase/codeconvtoc-136057.html ... failures ++; проходит ++; –