Java_从入门到JavaEE_04

一、基本转义字符

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

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

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

		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类型

    1. 字面值常量:使用双引号括起来的内容
      System.out.println(“123”);
    2. 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. 举例:

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

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

  2. 复杂的if分支

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

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

    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. 举例:

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

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

    输入成绩,显示是否及格

    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. 实验:

	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. 案例:通过键盘录入学生成绩,输出等级

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秒内的学生有资格进决赛, 根据性别分别进入男子组和女子组。

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. 实验:

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. 举例:输入年和月,输出当月的天数

    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:判断单个值是否相同

  • 33
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值