Java-day04学习笔记

2021年1月1日

这是2021年的第一篇Java学习记录,以后坚持每周更新6次。
今年希望自己的Java学习之路能够顺顺利利,找到一份好工作。

一、三元表达式

练习:
1. 判断两个数是否相等
2. 有如下三个人的身高:165cm、183cm、135cm,通过三元表达式,求出三人中最高的一个人。

二、键盘录入

之前程序的数据都是直接写死在程序中的,修改和使用十分不便。所以Java官方提供了键盘录入,使我们可以在不修改程序的前提下,通过键盘来动态的录入数据。

需要用的类:Scanner

Scanner类在java.util包下

2.1 步骤

1. 创建对象 
		java.util.Scanner sc = new java.util.Scanner(System.in);
2. 接收数据
		int a = sc.nextInt();
3. 处理数据
接收数据的常见方法:
nextInt()      接收整数
nextDouble()   接收小数
nextLine()     接收字符串

三、导包

如果在一个类中想要使用其它包下的类,我们可以通过固定的格式将这个包声明在类的最上方,然后在这个类中就可以直接使用指定包下的类。

3.1 导包的格式

关键字:import

注意事项:
	1. 导入的包一定要声明在所有类的最上方
	2. java.lang包下类不需要导包就能使用
	3. 导包格式如下:
			1. import 包名.类名;  如:import java.util.Scanner;
			2. import 包名.*;    如:java.util.*;
			注意:建议选择具体到类名的。

3.2 使用导包简化键盘录入步骤

1. 导包
		import java.util.Scanner;
2. 创建对象
		Scanner sc = new Scanner(System.in);
3. 接收数据
		int x = sc.nextInt();
4. 处理数据
//1. 导包
import java.util.Scanner;
public class Demo2 {
    
    
	
	public static void main(String[] args) {
    
    
		
		//2. 创建对象 
		Scanner sc = new Scanner(System.in);
	
		System.out.println("请输入一个整数:");
		//3. 接收数据
		int x = sc.nextInt();
	
		//4. 处理数据
		System.out.println(x);
	}
}
接收数据的常见方法:
nextInt()      接收整数
nextDouble()   接收小数
nextLine()     接收字符串
/*
	判断两个数是否相等
 */
import java.util.Scanner;
public class Test {
    
    
	
	public static void main(String[] args) {
    
    
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入第一个整数:");
		int x = sc.nextInt();
		System.out.println("请输入第二个整数:");
		int y = sc.nextInt();
		
		String s = x == y ? "相等" : "不相等";
		
		System.out.println(s);
	}
} 
 
/*
	求三个数的最大值
 */
import java.util.Scanner;

public class Test2 {
    
    
	
	public static void main(String[] args) {
    
    
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入第一个整数:");
		int x = sc.nextInt();
		System.out.println("请输入第二个整数:");
		int y = sc.nextInt();
		System.out.println("请输入第三个整数:");
		int z = sc.nextInt();
		
		int temp = x > y ? x : y;
		int max = temp > z ? temp : z;
		
		System.out.println("最大值为:" + max);
	}
}

四、流程控制语句

通过观察,我们知道程序执行顺序对结果有很直接的影响。有时候我们也会通过不同的执行顺序来达到我们想要的效果。

4.1 流程控制语句的分类

顺序结构
分支结构
循环结构

五、顺序结构

所有语言,包括Java默认的就是顺序结构,也就是程序是从上到下执行的。

在这里插入图片描述

public class Demo {
    
    
	
	public static void main(String[] args) {
    
    
		
		int a = 3;
		int b = 5;
		
		System.out.println(a);  //3
		System.out.println(b);  //5
		
		System.out.println("over");  //over

	}
}

六、分支结构

一个程序在执行到某处的时候,可以有多条路进行选择,这多条路不可能同时都执行,也不会一条都不会执行,而是只能执行其中一条。像这种结构就是分支结构。

6.1 分类

if语句
switch语句

6.2 if语句

① if语句的第一种格式
if(关系表达式){
    
    
	语句体;
}

格式的解释:
	1. 关系表达式的结果必须为boolean类型,要么是true、要么是false
	2. 如果结果为true,那么执行大括号中的语句体
	3. 如果结果为false,那么不执行大括号中的语句体,而是执行if语句下方的内容

在这里插入图片描述

public class IfDemo {
    
    
	
	public static void main(String[] args) {
    
    
		
		int a = 5;
		
		if(a == 3){
    
    
			System.out.println("进入了if语句中");
		}
		
		System.out.println("over");
	}
}
练习:
键盘录入一个数,并判断这个数是整数还是小数(根据题意的规则为:先输入一个小数,如果小数点后有非0数字那么就认为是小数,如果小数点只有0那么就认为是整数)
如: 12.35 小数  12.0  整数
/*
	键盘录入一个数,并判断这个数是整数还是小数(根据题意的规则为:先输入一个小数,如果小数点后有非0数字那么就认为是小数,如果小数点只有0那么就认为是整数)
	如: 12.35 小数  12.0  整数
 */
import java.util.Scanner;
public class IfTest {
    
    
	
	public static void main(String[] args) {
    
    
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请录入一个数:");
		
		//原来的数
		double d = sc.nextDouble();
		
		//经过强制数据类型转换之后的数
		int dd = (int)d;
		
		//用原来的数减去强制转换之后的数
		double result = d - dd;
		
		//如果结果等于0那就证明是整数,如果结果不等于0那就证明是小数
		if(result == 0) {
    
    
			
			System.out.println(d + "是整数");
		}
		if(result != 0) {
    
    
			
			System.out.println(d + "是小数");
		}
	
	}
	
}
② If语句的第二种格式
if(关系表达式){
    
    
	语句体1;
}else{
    
    
	语句体2;
}

格式的解释:
	1. 关系表达式的结果必须为boolean类型,要么是true、要么是false
	2. 如果结果是true,那么执行语句体1
	3. 如果结果是false,那么执行语句体2

在这里插入图片描述

public class IfDemo2 {
    
    
	
	public static void main(String[] args) {
    
    
		
		int a = 3;
		
		/*
			三元表达式可以和if语句的第二种格式互相转换
			
			注意事项:
				1. 三元表达式可以完成的,if语句都可以完成
				2. 三元表达式不能完成的,if语句也可以完成
		 */
		//System.out.println(a == 3 ? "a等于3" : "a不等于3");
        
		if(a == 3){
    
    
			
			System.out.println("a等于3");
		}else{
    
    
            
			System.out.println("a不等于3");
		}

		System.out.println("over");
	}
}
练习:使用if语句改进之前练习
1. 判断两个数是否相等
2. 求三个数的最大值
3. 判断一个数是奇数还是偶数

/*
	需求1. 判断两个数是否相等
 */
import java.util.Scanner;
public class IfTest2 {
    
    
	
	public static void main(String[] args) {
    
    
	
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入第一个整数:");
		int x = sc.nextInt();
		System.out.println("请输入第二个整数:");
		int y = sc.nextInt();
		
		/*
		if(x == y){
			
			System.out.println("相等");
		}else{
			
			System.out.println("不相等");
		}
		*/
		
	}
}

/*
	需求2. 求三个数的最大值
 */
import java.util.Scanner;
public class IfTest3 {
    
    
	
	public static void main(String[] args) {
    
    
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入第一个整数:");
		int x = sc.nextInt();
		System.out.println("请输入第二个整数:");
		int y = sc.nextInt();
		System.out.println("请输入第三个整数:");
		int z = sc.nextInt();
		
		//定义一个变量,用来接收最大值
		int max = 0;
		
		if(x > y){
    
    
			/*
				x大于y才会进入到这里(也就是说只有x才有资格和z比较)
				我们只需要让x和z进行比较求出最大值即可
			*/
			if(x > z){
    
    
				max = x;
			}else{
    
    
				max = z;
			}
			
		}else{
    
    
			/*
				y大于x才会进入到这里(也就是说只有y才有资格和z比较)
				我们只需要让y和z进行比较求出最大值即可
			 */
			if(y > z){
    
    
				max = y;
			} else{
    
    
				max = z;
			}
		}
		
		//打印最大值
		System.out.println("最大值为:" + max);
	}
}

/*
	需求3. 判断一个数是奇数还是偶数
 */
import java.util.Scanner;
public class IfTest4 {
    
    
	
	public static void main(String[] args) {
    
    
		
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个整数:");
		int x = sc.nextInt();
	
		if(x % 2 == 0){
    
    
			System.out.println(x + "是偶数");
		}else{
    
    
			System.out.println(x + "是奇数");
		}
	
	}
}
③ If语句的第三种格式
if(关系表达式1){
    
    
	语句体1;
}else if(关系表达式2){
    
    
	语句体2;
}else if(关系表达式3){
    
    
	语句体3;
}
...
else{
    
    
	语句体n;
}

格式的解释:
	1. 关系表达式的结果必须为boolean类型,要么是true,要么是false
	2. 如果关系表达式1的结果为true,那么执行语句体1
	3. 如果关系表达式1的结果为false,那么会看关系表达式2的结果是true还是false
	4. 如果关系表达式2的结果为true,那么执行语句体2
	5. 如果关系表达式2的结果为false,那么会看关系表达式3的结果是true还是false
	...
	如果都为false,那么会执行else中的内容
   
注意事项:
    1. else可以省略
    2. else只能放在最后

在这里插入图片描述

成绩等级分类:
	0 - 59    不及格
	60- 69    中等
	70- 89    良好
	90-100    优秀
/*
	需求:
		成绩等级分类:
		0 - 59    不及格
		60- 69    中等
		70- 89    良好
		90-100    优秀
 */
import java.util.Scanner;
public class IfTest5 {
    
    
	
	public static void main(String[] args) {
    
    
	
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请录入您的成绩:");
		int score = sc.nextInt();
	
		if(score >= 0 && score < 60){
    
    
			
			System.out.println("不及格");
		}else if(score >= 60 && score < 70){
    
    
			
			System.out.println("中等");
		}else if(score >= 70 && score < 90){
    
    
			
			System.out.println("良好");
		}else if(score >= 90 && score <= 100){
    
    
			
			System.out.println("优秀");
		}else{
    
    
			
			System.out.println("您录入的数据非法,请重新录入!");
		}

	}
}

6.3 switch语句

① 格式及解释
switch (表达式) {
    
    
	case1 :
		语句体1;
		break;
	case2 :
		语句体2;
		break;
	case3 :
		语句体3;
		break;
	...
	default :
		语句体n;
		break;
}

格式的解释:
	1. switch 是一个关键字,切换的意思。表示了这是一个switch语句
	2. case 是一个关键字,情况的意思。会比对表达式中的值是否和自己后面的值相同
			如果相同的话,那么就执行自身下方的语句体
	3. break 是一个关键字,破坏、打断的意思。用来退出switch语句
	4. default 是一个关键字,默认的意思。如果所有的情况都不匹配,那么会执行default下面的内容
② switch语句的注意事项
1. 表达式的值可以是:
		byteshortintchar
		jdk5之后:枚举
		jdk7之后:字符串String
2. case后面的值只能是常量
3. break可以省略吗?可以省略,但是会发生穿透现象。
4. default可以省略吗?可以省略。
5. default一定要放在最后吗?可以放在其它位置,但是建议放在最后。
练习:
用switch语句完成 春夏秋冬的判断
	12  1  2 冬季
	3   4  5 春季
	6   7  8 夏季
	9  10 11 秋季
import java.util.Scanner;
public class Demo {
    
    
    
    public static void main(String[] args) {
    
    
        
        Scanner scan = new Scanner(System.in);
        int month = scan.nextInt();
        switch(month) {
    
    
            case 12:
            case 1:
            case 2:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default :
                System.out.println("输入错误!!!"); 
                
        }
    }
}

猜你喜欢

转载自blog.csdn.net/ChangeNone/article/details/112058731
今日推荐