Я работаю над упражнением из вводной учебной книги. Упражнение должно написать программу, которая предлагает пользователю ввести два символа и отобразить майор и статус, представленные в символах. Первый символ указывает майор, а второй - числовой символ 1, 2, 3, 4, который указывает, является ли студент новичком, второкурсником, младшим или старшим. Предположим следующие символы используются для обозначения майоров:Оператор if-statement и логические операторы
I: Информация управления
C: Computer Science
A: Учет
Буква символ набирается первой, а количество символов второй. Пока программа работает до тех пор, пока оба символа набраны правильно. Если символы набраны неправильно, то есть T3, программа должна напечатать «Недопустимый вход». Программа печатает «Недопустимый ввод», если символ буквы напечатан правильно, а символ числа ошибочен. Но если символ буквы введен неверно, а символ числа правильный, программа печатает пустое место вместо основного, плюс заголовок. В последнем if-statement я попытался сделать условие, в котором говорится, что если набирается какой-либо другой символ, отличный от «I», «C» или «A», а также числовой символ, который не находится в интервале между 1 и 4, программа должна напечатать «Недопустимый вход». Кто-нибудь может понять, что не так? Пример кода ниже:
import java.util.Scanner;
public class MajorAndStatus {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String major = "";
String title = "";
System.out.println("Enter 2 characters: ");
String inputString = input.nextLine();
if (inputString.charAt(0) == 'I') {
major = "Information Management";
}
else if(inputString.charAt(0) == 'C') {
major = "Computer Science";
}
else if(inputString.charAt(0) == 'A') {
major = "Accounting";
}
if (inputString.charAt(1) == '1') {
title = "Freshman";
}
else if(inputString.charAt(1) == '2') {
title = "Sophomore";
}
else if(inputString.charAt(1) == '3') {
title = "Junior";
}
else if(inputString.charAt(1) == '4') {
title = "Senior";
}
if (((inputString.charAt(0) != 'I' || inputString.charAt(0) != 'C' || inputString.charAt(0) != 'A')) & ((inputString.charAt(1) < '1' || inputString.charAt(1) > '4'))) {
System.out.println("Invalid input");
}
else {
System.out.println(major + " " + title);
}
}
}
Вы, кажется, как правило, читать условия неправильно. Попробуйте прочитать их вслух, чтобы лучше понять вашу проблему (по крайней мере, это то, чему я учу своих учеников). Вы пишете «Если мой первый символ не является« я », а не« C », а не« A »...», но вы на самом деле имеете в виду «Если мой первый персонаж не является ни« I », ни« C », A '...) –