我是Java和编程的新手,所以如果这个问题对你很明显,我会提前道歉。
我要做的是将行的打印输出设置为等于变量,以便我可以使用该变量来添加或减去.3,具体取决于是否键入了“ - ”或“+”符号在输入中。
编辑:
import java.util.*;
public class HomeworkCalculator {
public static void main(String[]args)
{
Scanner in = new Scanner(System.in);
String grade, letter1, letter2;
System.out.print("Enter a letter grade: ");
grade = in.nextLine();
letter1 = grade.substring(0,1);
letter2 = grade.substring(1,2);
double gpa = 0;
if (letter1.equals("A"))
gpa = 3.9;
else if(letter1.equals("B"))
gpa = 3.0;
else if(letter1.equals("C"))
gpa = 2.1;
else if(letter1.equals("D"))
gpa = 1.2;
else if(letter1.equals("F"))
gpa = 0;
System.out.println(gpa);
if(letter2.equals("+")) {
System.out.println(gpa + 0.3);
}
else if(letter2.equals("-")) {
System.out.println(gpa - 0.3);
}}}
所以现在问题是如果我只输入单个字母A,B,C,D,F它会给我一个错误。显然我希望这个程序能够接受单字母等级,除了将'A +'的输入默认为不高于4.0,并使其像F +或F-这样的输入返回相同的gpa为0就像等级一样F.我可能会愚弄更多的if / else语句和逻辑运算符..:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out
of range
at java.lang.String.substring(String.java:1907)
at HomeworkCalculator.main(HomeworkCalculator.java:10)
答案 0 :(得分:1)
考虑letter
和plusMinusSign
是String
输入。考虑首先分配然后打印变量X
。
这样做:
float X = 0.0f;
if(letter.equals("B")) {
X += 3.0;
System.out.println(X);
} else if(plusMinusSign.equals("+") {
X += 0.3; // instead of System.out.print(X + .3);
System.out.println(X);
} else if (letter.equals("-") {
X -= 0.3; // instead of System.out.print(X - .3);
System.out.println(X);
}
如果您尝试从else if
开始,它将无效。
尝试使用以下语法:
if (...) {...}
else if (...) {...} // There can be multiple `else if` statements
else {...}
答案 1 :(得分:0)
这是你想要的吗?
String input;
double x = 0;
while((input = processInput()) != null) {
if(input.equals("B")) {
x = 3.0;
} else if(input.equals("+")) {
x += 0.3;
} else if(input.equals("-")) {
x -= 0.3;
}
System.out.println(x);
}
答案 2 :(得分:0)
我看到了多个问题:
else if(letter.equals("-"))
,但您的意思是测试plusMinusSign.equals("-")
else if
开始,而不仅仅是if
3.0
,而不是使用任何变量。以下是我认为您想要做的事情(还记得创建变量x
作为小写):
double x = 0; // or whatever you want x to initially be
if(letter.equals("B")) {
x = 3;
}
System.out.println(x);
if(plusMinusSign.equals("+")) {
// x = x + 0.3; // I don't know if you want to modify the variable
System.out.println(x + 0.3);
} else if(plusMinusSign.equals("-")) {
// x = x - 0.3; // I don't know if you want to modify the variable
System.out.println(x - 0.3);
}