作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在研究这段代码,它非常基础,但我刚刚开始使用 Java,我不知道它发生了什么。
import java.util.Scanner;
public class Proj {
public static void main(String[] args) {
//Create Scanner
Scanner scanner = new Scanner(System.in);
//Input Abbreviation
System.err.print("Input METAR Abbreviation: ");
scanner.nextLine( );
//Abbreviations
String abb = "";
if (abb.equals("B")) {
System.out.println ("Began At Time ");
}
else if(abb.equals("+")) {
System.out.println ("Heavy intensity");
}
else if(abb.equals("-")) {
System.out.println ("Light intensity");
}
else if(abb.equals("DZ")) {
System.out.println ("Drizzle");
}
else if(abb.equals("E")) {
System.out.println ("Ended At Time");
}
else if(abb.equals("HZ")) {
System.out.println ("Haze");
}
else if(abb.equals("RA")) {
System.out.println ("Rain");
}
else if(abb.equals("SN")) {
System.out.println ("Snow");
}
else(abb !=NULL) {
System.out.println("Unknown Abbreviation");
}
//Close scanner
scanner.close( );
}
}
所以我想做的是,当有人输入缩写之一时,它会打印出它的含义,如果缩写不存在,它会打印出未知缩写。所以我的问题是,当我运行代码时,它会打印输入 METAR 缩写,您可以输入一个字符串,但之后什么也没有发生,有人可以帮助我吗?谢谢
最佳答案
您调用scanner.nextLine()
但从未真正捕获或使用其结果。然后,您分配 String abb= ""
。这意味着abb
永远是""
。这与您的 if
中的任何一个都不匹配条件。
如果你这样做String abb = scanner.nextLine( );
,您将得到您想要的:扫描仪将读取下一行,并将该值分配给 abb
.
顺便说一句,我怀疑这段代码能否编译; NULL
不是 Java 中的关键字(Java 区分大小写),并且 else
需要 if
在它之后。但您也不需要检查 null
,因为scanner.nextLine()
永远不会返回它(如果没有下一行,它只会抛出 NoSuchElementException
)。所以最后一位应该只是一个简单的 else {
.
关于Java If Else 缩写语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869236/
我是一名优秀的程序员,十分优秀!