条件判断
if
条件判断有以下形式:
// 1.if
if(布尔表达式){
执行语句1;
执行语句2;
执行语句3;
...
}
// 2.if else
if(布尔表达式){
条件语句;
}else{
条件语句2;
}
// 3.else if
if(布尔表达式1){
执行语句块1;
}else if(布尔表达式2){
执行语句块2;
}else if(布尔表达式3){
执行语句块3;
}...
// 4.else if else
if(布尔表达式1){
执行语句块1;
}else if(布尔表达式2){
执行语句块2;
}else if(布尔表达式3){
执行语句块3;
}...
else{
最后的执行语句块;
}
- 对于java
if
语句只要有一个分支语句执行,整个语句就结束了 - 凡是有
else
的形式都会保证百分百都有分支执行 - 所有
if
语句都可以嵌套,大括号里的语句须使用缩进, 但也要合理使用,尽量避免嵌套多层 - 只有一个执行语句,大括号可以不写(不推荐)
天气示例
判断天气->
下雨->
男生:打纯色伞
女生:打花伞
天晴->
温度->
大于30度
男生:戴黑色墨镜
女生:戴粉色墨镜
小于30度
什么也不用干
另外,尽量保证代码稳健性,解决用户非法输入问题
示例代码:
public class IfWeather{
public static void main(String[] args){
//打印输入提示
System.out.println("雨/晴: 1/2");
System.out.println("男/女: 1/2");
//创建一个键盘对象
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("weather:");
int weather = s.nextInt();
System.out.print("sex:");
int sex = s.nextInt();
if(weather == 1){
System.out.println("今天天气是:" + weather);
if(sex == 1){
System.out.println("你是男生,应该带一把纯色伞");
}else if(sex == 2){
System.out.println("你是女生,应该带一把小花伞");
}else{
System.out.println("你输了个啥性别?请重新运行程序");
}
}else if(weather == 2){
System.out.print("temp:");
int temp = s.nextInt();
if(temp >= 30){
if(sex == 1){
System.out.println("你是爷们,应该戴黑墨镜");
}else if(sex == 2){
System.out.println("你是女生,应该戴粉墨镜");
}else{
System.out.println("你输的啥性别?请重新运行程序");
}
}else if(temp < 30){
System.out.println("今天天气很舒服,啥眼镜也不用带");
}else{
System.out.println("你输的啥温度?请重新运行程序");
}
}else{
System.out.println("你输的啥天气?请重新运行程序");
}
}
}
错误示例
若只有一行执行语句,大括号是可以省略的,但是注意后面的语句已经不是if
语句块中的了
public class IfError{
public static void main(String[] args){
if(true) System.out.println("单行if执行语句不用加括号也可以(不推荐)");
if(false)
System.out.println("可以执行"); //实际上等价于上句末加'{',这句末尾加'}',从而结束了if的执行语句
System.out.println("可以执行,不过已经不属于if执行语句了");
else{ //该行报错
System.out.println("只有一个else没有if会报错");
}
}
}
键盘输入
- 通过调用java基本库
java.util.Scanner(System.in)
创建键盘扫描对,一次创建多次使用 - 通过键盘对象的
next
方法接受字符串,非字符串类型会默认转换成String
类型 - 通过键盘对象的
nextInt
方法接受int
,非``int```类型字面值都会报错 - 类似的还有
nextFloat/nextDouble
等等
public class KeyInput{
public static void main(String[] args){
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.print("请输入字符:" ); //不换行
String keyInput = s.next();
//int keyInput = s.next(); //next返回String,int接受失败
System.out.println("您输入的内容:" + keyInput);
System.out.print("请输入整数:" ); //不换行
int num = s.nextInt();
System.out.println("您输入的整数乘以10:" + (num * 10));
System.out.print("请输入字符:" ); //不换行
float flt = s.nextFloat();
System.out.println("您输入的小数:" + flt);
}
}
参考
B站动力节点老杜老师的Java教程(原视频戳这里)