Java基础-条件结构

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
喜欢就支持一下吧
点赞0 分享