2.3.1条件判断语句
2.3.1.1if-else
if-如果,else-否则,其他
结构:
if(比较表达式){
//当if中的比较表达式为true的时候才会执行下面大括号中的语句体
语句体;
}else{//当if中的比较表达式为false的时候执行else下面的大括号中的语句体 语句体;
}
复制代码
执行流程:
1:先计算比较表达式的结果是ture还是false
2: 如果是ture 执行if的语句体
3:如果是flase就执行else的语句体
package Java基础02_条件结构;
import java.util.Scanner;
/*
* if-else条件判断语句
执行流程:
1.先计算比较表达式的结果是true还是false
2.如果是true执行if的语句体 3.如果是false就执行else的语句体
*/
public class IfDemo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 3;
int b = 1;
if(a>b) {
System.out.println("a大于B成立");
}else {
System.out.println("a大于B不成立");
}
System.out.println("--------------------------------------------");
System.out.println("用户登录");
int username=1234;//固定账号
int password=1111;//固定密码
Scanner sc = new Scanner(System.in);//接受键盘输入的东西
System.out.println("请输入用户名:");
int sc_username = sc.nextInt();
//将键盘接受的数据保存在变量中,目的是为了与写好的账号进行匹配。
System.out.println("请输入密码:");
int sc_password = sc.nextInt();
if(username==sc_username&&password==sc_password) {
System.out.println("登录成功");
}else {
System.out.println("登录失败");
}
}
}
复制代码
注意:
1:表达式无论是简单还是复杂,结构必须是boolean类型的
2:if语句控制的语句如果是一条,大括号可以省略,但是不建议省略
3:一般来说,由左括号就没有分号,有分号就没有坐括号,
4:else后面是没有比较表达式的,只有if后面有比较表达式,
5:有else,一定要先写if,有一个if,不一定有else
扩展:三目改进if-else
package Java基础02_条件结构;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("--------------------------------------------");
System.out.println("用户登录");
int username=1234;//固定账号
int password=1111;//固定密码
Scanner sc = new Scanner(System.in);//接受键盘输入的东西
System.out.println("请输入用户名:");
int sc_username = sc.nextInt();
//将键盘接受的数据保存在变量中,目的是为了与写好的账号进行匹配。
System.out.println("请输入密码:");
int sc_password = sc.nextInt();
/* if(username==sc_username&&password==sc_password) {
System.out.println("登录成功");
}else {
System.out.println("登录失败");
}
*/
//用三目元改进:
String ste_login=(username==sc_username&&password==sc_password)?"登录成功":"登录失败";
System.out.println(ste_login);
//什么时候if-else实现不能用三目元来改进:
/*
为什么?
因为三目元运算符是一个运算符而已,运算符操作完成就应该有一个结果,而不是一个输出!
*/
}
}
复制代码
2.3.2if-elseif-if
格式:
if(比较表达式1){
语句体1;
}else if(比较表达式1){
语句体2;
}else{
语句体N;
}
复制代码
执行流程:
1:先计算比较表达式1的结果是true还是false
2:如果是true执行语句体1;
3:如果是false,则计算表达式2的结果是true还是false
如果是true,则执行语句体2,此时判断结束。
4:如果以上的语句体都是false,则执行else的语句。
package Java基础02_条件结构;
import java.util.Scanner;
/*
* 需求,键盘录入一个成绩,判断并输出成绩的等级
*
* 90-100:优秀
* 80-90:良好
* 70-80:中等
* 60-70:及格
* 60分以下:不及格
*
* 利用if_elseif_else完成:
* 面试题:
* 多个if与多个else_if的区别:
* (分条件与多条件的区别)
*
* 分条件:知道if没有才停止判断
* 多条件:当条件成立立即停止判断
*
*/
public class If_ElseIf_ElseDemo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入成绩:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
if (i >= 90 && i < 100) {
System.out.println(i + "成绩优秀");
} else if (i >= 80 && i < 90) {
System.out.println(i + "成绩良好");
} else if (i >= 70 && i < 80) {
System.out.println(i + "成绩中等");
} else if (i >= 60 && i < 70) {
System.out.println(i + "成绩及格");
} else if (i >= 0 && i < 60) {
System.out.println(i + "成绩不及格");
} else {
System.out.println(i + "成绩输入不规范");
}
}
}
复制代码
注意:
1:有else一定有if,2:有if不一定有else,3:if永远是开头的else是结尾,5:else if 可以有无数个也可以没有。
else if 当if条件不成立的情乱搞下,并且存在else if 才执行else if
案例:模拟注册
package Java基础02_条件结构;
import java.util.Scanner;
/*
* 注册案例需求:
* 用户名:要求长度不超过8位数,若超过8位数,则提示用户名过长
* 密码:要求长度不超过6位数,若超过则提示密码过长
* 确认密码,判断确认密码和密码是否一致,若不一致,则提示密码不一致
* 姓名:不能为空
* 身份证号码:不能为空
*
*/
/*
字符串知识点扩展:
.length():获得字符串的长度
.equals():比较字符串是否相同
面试体题:
==和.equals() 方法的区别:
==是判断内存地址
.equals是判断字符串的值是否相同。
String str1="abc";
String str2 = new String("abc");
str1与str2的值相等,但是内存地址不相等,
因为str2在内存中开辟了一块内存地址。
str1的内存的地址属于String池。
*/
public class IfDemo_log {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("会员注册:");
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的用户名:");
String sc_username = sc.nextLine();
System.out.println("请输入您的密码:");
String sc_password = sc.nextLine();
System.out.println("请输入您的确认密码:");
String sc_readpassword=sc.nextLine();
System.out.println("请输入您的姓名:");
String sc_readusername=sc.nextLine();
System.out.println("请输入您的身份证号码:");
String sc_id=sc.nextLine();
if(sc_username.equals("")|sc_username.length()>8) {//.length() 获得字符串的长度
System.out.println("用户名过长或为空");
}else if(sc_password.length()>2|sc_password.equals("")) {//.equals() 是来比较字符串的数据是否相同
System.out.println("密码过长或为空");
}else if(!sc_readpassword.equals(sc_password)) {
System.out.println("密码不一致");
}else if(sc_readusername.equals("")){//null 表示空
System.out.println("姓名不能为空");
}else if(sc_id.equals("")|sc_id.length()<4) {
System.out.println("身份证输入不规范");
}else {
System.out.println("恭喜注册成功,您的信息如下:");
System.out.println(sc_username+":为用户名");
System.out.println(sc_password+":为密码");
System.out.println(sc_readusername+":为姓名");
System.out.println(sc_id+":为身份证号码");
}
}
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END