Java_从入门到JavaEE_04

一、基本转义字符

含义:具有特殊意义的字符本身

字符 含义
\" 表示一个双引号字符
\' 表示一个单引号字符
\\ 表示一个斜杠字符
\n 表示换行
\t 表示水平制表

print():输出
​ println():输出+换行

java 复制代码
		System.out.println("\"1122\"");
		System.out.println("\'2233\'");
		System.out.println("\\3344\\");
		
		System.out.print("1122\n");
		System.out.print("2233\n");
		
		System.out.println("3*3=9\t3*4=12\t3*5=15");
		System.out.println("4*3=12\t4*4=16\t4*5=20");

二、常量

  1. 含义:程序执行过程中不可发生改变的量

  2. 分类:

    1. 数字字面量:程序中出现的数字

    ​ 整数数字默认int类型

    ​ 小数数字默认double类型
    2. 字面值常量:使用双引号括起来的内容
    System.out.println("123");
    3. final:使用final修饰的变量
    final int MAX_LENGTH = 100;
    System.out.println(MAX_LENGTH);

  3. 命名拓展:

    1. 大驼峰命名法/帕斯卡命名法:

      法则:单词首字母大写

      作用:类

      **ps:**public class HelloWorld{}

    2. 小驼峰命名法:

      法则:除了第一个单词,其余的单词首字母大写

      作用:方法、变量

      **ps:**int curCapacity = 0;

    3. 常量命名法:

      法则:所有字母大写,单词之间使用下划线隔开

      作用:常量

      **ps:**final int MAX_LENGTH = 100;

三、Java的执行语句

1.分类

  1. 顺序语句:方法里的代码从上往下执行

  2. 分支语句:条件成立就执行某个功能

    2.1 if分支

    2.2 switch分支

  3. 循环语句:条件成立就重复性的执行某个功能

    3.1 for循环

    3.2 while循环

    3.3 do-while循环

  4. 特殊的流程控制语句

    4.1 break

    4.2 continue

    4.3 return

    4.4 label

2.分支语句

  1. 简单if分支

    1. 语法结构:

      ​ if(表达式){

      ​ ...代码块...

      ​ }

    2. 理解:表达式的结果必须是boolean类型

      true - 执行代码块

      false- 跳过if分支,执行if以外的代码

    3. 举例:

      java 复制代码
      	if(结果为boolean型){
      			System.out.println("...代码块...");
      		}
      		System.out.println("if以外的代码");

      小结:if(){}要么进入,要么不进入

  2. 复杂的if分支

    输入体重与身高,计算健康值

    人类的健康值在20-25的数值内为健康

    java 复制代码
    import java.util.Scanner;
    public class Test{
        public static void main(String[] args){
    	Scanner scan = new Scanner(System.in);
    			System.out.println("请输入体重(Kg):");
    			double weight = scan.nextDouble();
    			System.out.println("请输入身高(M):");
    			double height = scan.nextDouble();
    			
    			double health = weight/(height*height);
    			
    			if(health>20 && health<25){
    				System.out.println("护士说:\"健康,保持现有状态\"");
    			}
    	}
    }
  3. if...else...分支

  4. 语法结构:

    if(表达式){

    ​ ...代码块...

    }else{

    ​ ...else代码块...

    }

  5. 理解:

    表达式的结果必须是boolean类型

    true - 执行代码块

    false- 执行else代码块

  6. 举例:

    java 复制代码
        if(false){
            System.out.println("...代码块...");
        }else{
            System.out.println("...else代码块...");
        }
            System.out.println("if分支以外的代码块");

    小结:if...else...二选一的情况下使用

    输入成绩,显示是否及格

    java 复制代码
    import java.util.Scanner;
    public class Test{
        public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    			System.out.println("请输入分数:");
    			double score = scan.nextDouble();
    			
    			if(score > 60){
    				System.out.println("及格");
    			}else{
    				System.out.println("挂科");
    			}
    	}
    }


    小结:if可以判断区间,也可以判断复杂条件,只要是表达式的结果是boolean就行。

  7. 多重if分支

    1. 语法结构:

      if(表达式1){

      ​ ...代码块1...

      }else if(表达式2){

      ​ ...代码块2...

      }else if(表达式n){

      ​ ...代码块n...

      }else{

      ​ ...else代码块...

      }

    2. 理解:

      从上往下判断表达式,哪个表达式先为true,就执行对应的代码块,如果都不为true就执行else代码块

      表达式的结果必须是boolean类型

      true - 执行代码块

      false- 执行else代码块

      注意:else代码块根据需求可写可不写

    3. 实验:

java 复制代码
	if(false){
		System.out.println("...代码块1...");		
	}else if(false){
		System.out.println("...代码块2...");
	}else if(false){
		System.out.println("...代码块3...");
	}else{
		System.out.println("...else代码块...");
	}
		System.out.println("if分支以外的代码");

​ 4. 案例:通过键盘录入学生成绩,输出等级

java 复制代码
import java.util.Scanner;
public class Test{
    public static void main(String[] args){
			Scanner scan = new Scanner(System.in);
			System.out.println("请输入成绩:");
			double score = scan.nextDouble();
			
			if(score>90 && score<=100){
				System.out.println("A");
			}else if(score>80 && score<=90){
				System.out.println("B");
			}else if(score>70 && score<=80){
				System.out.println("C");
			}else if(score>60 && score<=70){
				System.out.println("D");
			}else if(score> 0 && score<=60){
				System.out.println("E");
			}else{
				System.out.println("成绩异常");
			}
	}
}

​ 小结:多重if分支在多选一的情况下使用

  1. if分支嵌套

    案例:运动会,百米赛跑跑入16秒内的学生有资格进决赛, 根据性别分别进入男子组和女子组。

java 复制代码
import java.util.Scanner;
public class Test{
    public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		
		System.out.println("请输入成绩:");
		double score = scan.nextDouble();
			
		if(score>=0 && score<16){
			System.out.println("请输入性别:");
			String sex = scan.next();
				
			if(sex.equals("男")){//判断两个字符串的内容是否相同(sex和"男")
				System.out.println("恭喜进入到男子组决赛");
					
			}else if(sex.equals("女")){//判断两个字符串的内容是否相同(sex和"女")
				System.out.println("恭喜进入到女子组决赛");
					
			}else{
				System.out.println("性别异常");
			}
			}else if(score>=16){
				System.out.println("你被淘汰了,重在参与");
			}else{
				System.out.println("成绩异常");
			}
	}
}

​ 小结:if可以无限层嵌套

​ 注意:嵌套最好不要超过3层,嵌套越多可读性越差

  1. switch分支的使用

    1. 语法结构:

      switch(表达式){

      ​ case 值1:

      ​ ...代码块1...

      ​ break;

      ​ case 值2:

      ​ ...代码块2...

      ​ break;

      ​ case 值n:

      ​ ...代码块n...

      ​ break;

      ​ default:

      ​ ...default代码块...

      ​ break;

      }

    2. 理解:

      表达式的结果分别给值1、值2、值n比较,哪个相同就执行对应的代码块

      如果都不相同就执行default代码块

      default代码块根据需求可写可不写

      break表示跳出当前分支语句

    3. 实验:

java 复制代码
switch(50){
				case 10:
					System.out.println("10");
				break;
				case 50:
					System.out.println("50");
				break;
				case 100:
					System.out.println("100");
				break;
				default:
					System.out.println("...default代码块...");
				break;
			}
			System.out.println("switch分支以外的代码");

​ 小结:switch是比较表达式的结果和case后面的值是否相同

  1. switch分支的深入

    1. case的值不允许相同。

    2. default可以省略(相当于多重if里的else{})

    3. break可以省略,但在switch底层逻辑中表达式的值与case进行比较,当值相同后,进入语句中不会在进行比较,因此会继续向下执行,直到再次遇到 break后才会跳出switch。

    4. default的位置不一定,但是为了可读性最好放在最后。

    5. 表达式值的类型byte、short、int、char、String(JDK1.8)、枚举(JDK1.5)。

      原因:switch底层只识别int值

      1. byte --> int 自动转型
      2. short -> int 自动转型
      3. int --> int 直接使用
      4. char --> int 获取字符的码值
      5. String-> int 获取字符串的hash码(获取字符串中多个字符的码值 + 散列算法,算出来的结果就是hash值)
      6. 枚举 --> int 获取枚举对象的编号
  2. 举例:输入年和月,输出当月的天数

    java 复制代码
    import java.util.Scanner;
    public class Test{
        public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    			System.out.println("请输入年:");
    			int year = scan.nextInt();
    			System.out.println("请输入月:");
    			int month = scan.nextInt();
    			
    			int day = 0;
    			switch(month){
    				case 1:case 3:case 5:case 7:case 8:case 10:case 12:
    					day = 31;
    				break;
    				case 4:case 6:case 9:case 11:
    					day = 30;
    				break;
    				case 2:
    					if(year%4==0 && year%100!=0 || year%400==0){
    						day = 29;
    					}else{
    						day = 28;
    					}
    				break;
    			}
    			
    			System.out.println(year + "年" + month + "月的天数为:" + day + "天");
    	}
    }
  3. if 与 switch的区别

    1. 表达式的区别:

      if:boolean类型

      switch:byte、short、int、char、String(JDK1.8)、枚举(JDK1.5)

    2. 应用场景的区别:

      if:判断区间、判断复杂条件

      switch:判断单个值是否相同

相关推荐
m0_571957581 小时前
Java | Leetcode Java题解之第543题二叉树的直径
java·leetcode·题解
一点媛艺2 小时前
Kotlin函数由易到难
开发语言·python·kotlin
魔道不误砍柴功3 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2343 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨3 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
_.Switch3 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
测开小菜鸟5 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
P.H. Infinity5 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天6 小时前
java的threadlocal为何内存泄漏
java
caridle6 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express