这里的Java新手,只是搞乱了我的项目,并注意到我的代码输出没有执行else if循环。如果我对测验(A或C)输入了错误的答案,则没有输出,它将直接跳至我的try块代码。
但是,如果我输入正确的答案,它将输出正确的代码,仅当我输入错误的答案时才会输出。
const Header = ({ currentUser }) => {
return (
<div className="top-nav">
<ReactSVG src={crown}/>
<div className="links">
<Link to="/shop">SHOP</Link>
<Link to="/contact">CONTACT</Link>
{
currentUser ? <div onClick={() => auth.signOut()}>SIGN OUT</div>
: <Link to="/sign-in">SIGN-IN</Link>
}
<Link to="/cart">CART</Link>
</div>
</div>
)
}
export default Header;
感谢您的帮助!而且我知道我的代码可能是凌乱的哈哈
答案 0 :(得分:1)
if(answer1.equals("A" + "C"))
->这检查answer1是否等于“ AC”。您串联了两个字符串,而不是||
的OR运算符。尝试
if(answer1.equals("A") || answer1.equals("C"))
答案 1 :(得分:0)
else if(answer1.equals("A" + "C")) {
表示:
else if(answer1.equals("AC")) {
“ A” +“ C”是字符串的串联,“ A” +“ C”产生一个新的字符串“ AC”。
答案 2 :(得分:0)
好吧,首先,您不必检查答案是否为A或C,而是要检查答案是否为“ AC”。要实现您所需要的,您可以使用以下代码
if(answer1.equals("B")) {
correctCount++;
System.out.println("----Thats the correct answer!---- +");
} else if(answer1.equals("A") || answer1.equals("C")) {
System.out.println("Wrong answer, sorry");
}
但是说实话,您甚至不需要else if语句,因为他写的任何不是B的字母都是不正确的。除非您也想处理“不存在的答案”
do {
System.out.println("Please choose A, B or C");
String answer1 = keyboardInput.nextLine();
} while (!answer1.equals("A") && !answer1.equals("B") && !answer1.equals("C"));
if (answer1.equals("B")) {
//code...
} else {
//code...
}
这样,您甚至不必检查它是A还是C,因为您已经检查了它是A B还是C,因此,如果不是B,它将是两个错误答案之一