基本上我的任务应该是2个单词,计算我所做的两个中最小的一个,但现在我需要引用最小的单词本身而不是数字。我认为这需要一个If语句,但是当我使用system.out.println
命令结束程序时,我无法初始化我的String并且控制台变得挑剔。
Scanner scan = new Scanner(system.In);
System.out.println(" Input first password ");
String pass1 = scan.nextLine();
Int pass1l = pass1.length();
System.out.println(" input second password ");
String pass2 = scan.nextLine();
Int pass2l = pass2.length();
Int spassl = Math.min(pass1l,pass2l);
// problematic part here.
String spass;
If (pass1l > pass2l){ spass = pass2}
else if (pass1l < pass2l) {spass = pass1}
else if (pass1l == pass2l) {spass = null;};
此外,Else if语句不是语句,第一语句是表达式的非法开始。
然后,如果我修复那些我用system.out调用spass,它说它没有初始化。我刚刚开始学习基本的Java,我之前使用过处理但不是针对String相关的if语句,只有整数。
答案 0 :(得分:1)
你快到了。如果没有最终else的块,则需要初始化变量spass。您可以给spass =“”或更改最终其他如果否则如下所示。
Scanner scan = new Scanner(System.in);
System.out.println(" Input first password ");
String pass1 = scan.nextLine();
System.out.println(" input second password ");
String pass2 = scan.nextLine();
// problematic part here.
String spass;
if (pass1.length() > pass2.length()) {
spass = pass2;
} else if (pass1.length() < pass2.length()) {
spass = pass1;
} else {
spass = null;
}
System.out.println("result: " + spass);
答案 1 :(得分:0)
你的问题只是一个格式问题,如果语句是这样的形式:
if(condition){
do_something;
}else if( second_condition ){
do_something_else;
}else{
alternative;
}
在你的情况下,似乎你不知道在哪里设置分号;
你必须在if块中设置分号,如下所示:
String spass;
If (pass1l > pass2l){
//Here semicolon
spass = pass2;
} else if (pass1l < pass2l) {
//Here semicolon
spass = pass1;
}else if (pass1l == pass2l) {
//Here semicolon
spass = null;
}
//No semicolon at the end of the if-else-statement