【发布时间】:2014-10-16 22:11:24
【问题描述】:
我正在尝试执行检查以确保用户键入的字母介于 A 和 E 之间。我尝试了几种不同的方法,但似乎没有任何效果。任何帮助,将不胜感激。主要问题是,它只检查一次。在它告诉我需要在 A 和 E 之间输入一个字母并输入 g 之后,它允许程序继续运行。
System.out.println("Please enter a letter indicating your tax category: A is no tax deduction, B is 10% of gross pay, \nC is 20% of gross pay, D is 29% of gross pay, E is 35% of gross pay");
//use ASCII of letters to compare
int A_ASCII = (int)'A';
int E_ASCII = (int)'E';
int ASCIIletter = 0;
// ask user for letter
letter = in.next().charAt(0);
// convert letter to uppercase and find ASCII value
if(Character.isLetter(letter)){
letter = Character.toUpperCase(letter);
ASCIIletter = (int) letter;
while (ASCIIletter>=A_ASCII&&ASCIIletter<=E_ASCII) {
if(ASCIIletter>=A_ASCII&&ASCIIletter<=E_ASCII){
if (ASCIIletter=='A'||ASCIIletter=='a'){
letter = letter;
gross = gross;
}
else if (ASCIIletter=='B'||ASCIIletter=='b'){
letter = letter;
deduct = (gross*0.1);
tax = gross - deduct;
}
else if (ASCIIletter=='C'||ASCIIletter=='c'){
letter = letter;
deduct = (gross*0.2);
tax = gross - deduct;
}
else if (ASCIIletter=='D'||ASCIIletter=='d'){
letter = letter;
deduct = (gross*0.29);
tax = gross - deduct;
}
else if (ASCIIletter=='E'||ASCIIletter=='e'){
letter = letter;
deduct = (gross*0.35);
tax = gross - deduct;
}
}
else {
System.out.println("You must enter a letter between A and E.");
letter = in.next().charAt(0);
}
}
【问题讨论】:
-
letter是char还是String? -
您是否尝试过使用等号?例如: letter.equals("A");?!
-
@TiagoBarreto 我应该在哪个部分忘记等号?
-
这怎么行?无论如何,像
letter = letter这样的语句没有任何用处,但我不知道你是否试图通过这个语句完成其他事情,或者有其他原因。 -
(letter >= 'A' && letter <= 'E') || (letter >= 'a' && letter <= 'e')
标签: java variables while-loop