Java 我总是收到一封“信”;否则不带if“;错误
我正在尝试编写一些代码,让用户输入一个有效的用户名,然后他们尝试了三次。每次编译它时,只要有else-if语句,我就会得到一个没有if的elseJava 我总是收到一封“信”;否则不带if“;错误,java,if-statement,conditional-statements,Java,If Statement,Conditional Statements,我正在尝试编写一些代码,让用户输入一个有效的用户名,然后他们尝试了三次。每次编译它时,只要有else-if语句,我就会得到一个没有if的else Scanner in = new Scanner(System.in); String validName = "thomsondw"; System.out.print("Please enter a valid username: "); String input1 = in.next(); if (input1.equa
Scanner in = new Scanner(System.in);
String validName = "thomsondw";
System.out.print("Please enter a valid username: ");
String input1 = in.next();
if (input1.equals(validName))
{
System.out.println("Ok you made it through username check");
}
else
{
String input2 = in.next();
}
else if (input2.equals(validName))
{
System.out.println("Ok you made it through username check");
}
else
{
String input3 = in.next();
}
else if (input3.equals(validName))
{
System.out.println("Ok you made it through username check");
}
else
{
return;
}
您误解了使用
if-else
if(condition){
//condition is true here
}else{
//otherwise
}else if{
// error cause it could never be reach this condition
}
阅读更多
你可以
if(condition){
}else if (anotherCondition){
}else{
//otherwise means 'condition' is false and 'anotherCondition' is false too
}
如果有一个
If
后跟一个else
,则结束该块。您可以在if
后面加上多个else-if
语句,但只有一个else
——并且else
必须是最后一个。您需要将除最后一个之外的所有“else”语句更改为“else-if”,或者在以下“else-if”语句之前加上纯“if”:
(一)
(二)
您的代码不是很容易维护。如果用户尝试了5次,你会怎么做?添加一些额外的if块?如果用户有10次尝试呢?:-)你明白我的意思了 请尝试以下操作:
Scanner in = new Scanner(System.in);
int tries = 0;
int maxTries = 3;
String validName = "thomsondw";
while (tries < maxTries) {
tries++;
System.out.print("Please enter a valid username: ");
String input = in.next();
if (input.equals(validName)) {
System.out.println("Ok you made it through username check");
break; //leaves the while block
}
}
Scanner-in=新的扫描仪(System.in);
int=0;
int max=3;
字符串validName=“thomsondw”;
while(尝试<最大尝试){
尝试++;
System.out.print(“请输入有效用户名:”);
字符串输入=in.next();
if(输入等于(有效名称)){
System.out.println(“好的,您通过用户名检查成功了”);
break;//离开while块
}
}
如果(条件){}else{}else{}
似乎不正确。第一个else
处理条件为false的情况,但第二个else
应该处理什么?如何说一个字符串不等于另一个字符串听起来像是要使用“not”运算符:!。例如,if(!string1.equals(string2)){…}
else if (input3.equals(validName))
{
System.out.println("Ok you made it through username check");
}
Scanner in = new Scanner(System.in);
int tries = 0;
int maxTries = 3;
String validName = "thomsondw";
while (tries < maxTries) {
tries++;
System.out.print("Please enter a valid username: ");
String input = in.next();
if (input.equals(validName)) {
System.out.println("Ok you made it through username check");
break; //leaves the while block
}
}