05、转义字符

05、转义符

1、概念

具有特殊意义的字符本身

" 表示一个双引号字符
表示一个单引号字符
\ 表示一个斜杠字符
\n 表示换行
\t 表示水平制表(前面的输出内容位数为8的倍数,\t将输出8个空格。前面的输出内容位数不是8的倍数,\t将补足8位)

public class Test {
	public static void main(String[] args) {
 		System.out.println("123456\t前面内容有6位,补2个空格");
 		System.out.println("12345678\t前面内容有8位,加8个空格");
 		System.out.println("123456789012345\t前面内容有15位,补1个空格");
	 }
}

2、常量

执行过程中不能发生改变的量

分类:

  • 数字字面量:程序中出现的数字
    整数数字默认int类型
    小数数字默认double类型

  • 字面值常量:使用双引号括起来的内容
    ​ ps:System.out.println(“用良心做教育”);

  • final:使用final修饰的变量
    final int MAX_LENGTH = 100;
    System.out.println(MAX_LENGTH );

注意:变量MAX_LENGTH被final修饰后变为常量,就不可以再被赋值,否则在编译时会报错

public class Test02{
	public static void main(String[] args){
		final int MAX_LENGTH = 100;
         MAX_LENGTH = 200//编译不通过
	}
}

3、命名规则

大驼峰命名法/帕斯卡命名法小驼峰命名法常量命名法
法则单词首字母大写除了第一个单词,其余的单词首字母大写所有字母大写,单词之间用下划线隔开
作用方法、变量常量
pspublic class HelloWorld{}int curCapacity = 0final int MAX_LENGTH = 100

4、Java执行语句

  • 顺序语句:方法里的代码从上往下执行
  • 分支语句:条件成立就执行对应的功能(if,switch)
  • 循环语句:只要条件成立,就重复性的执行某个功能(for,while,do-while)
  • 特殊的流程控制语句(break,continue,return,label)

简单的if分支

语法结构:
if(表达式){
…代码块…
}

import java.util.Scanner;
public class Test03{
	public static void main(String[] args){
		if(true){
			System.out.println("...代码块...");//输出
		}		
		System.out.println("if以外的代码块");//输出
	}
}

复杂的if分支

import java.util.Scanner;
public class Test03{
	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("小护士说:\"健康,请保持现有状态\"");
			}
	}
}

多重if分支

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

import java.util.Scanner;
public class Test06{
	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允许无限层嵌套
​ 2.项目中if最好嵌套不超过3层,因为超过3层后代码的可读性会很低

import java.util.Scanner;
public class Test07{
	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("男")){//判断两个字符串内容是否相同
				System.out.println("恭喜,进入男子组决赛");
			}else if(sex.equals("女")){//判断两个字符串内容是否相同
				System.out.println("恭喜,进入女子组决赛");
			}else{
				System.out.println("性别异常");
			}
		}else if(score >= 16){
			System.out.println("被淘汰了,重在参与");
		}else{
			System.out.println("成绩异常");
		}
	}
}

Swich语句

语法结构:
switch(表达式){
case 值1:
...代码块1...
break;
case 值2:
...代码块2...
break;
case 值n:
...代码块n...
break;
default:
...default代码块...
break;
}

表达式的结果分别于值1、值2、值n比较,哪个相同就执行对应的代码块。如果都不相同就执行default代码块。default代码块根据需求可写可不写,不影响语法规则。

break: 表示跳出整个switch分支

import java.util.Scanner;
public class Test08{
	public static void main(String[] args){
			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分支以外的代码...");
	}
}//50
//switch分支以外的代码

面试题

case的值可以相同吗?
不允许
default可以省略吗?
可以

break可以省略吗?
可以

default的位置一定要在最后吗?
不一定,但是最好放在最后,因为考虑到代码的可读性

表达式值的类型可以是什么?
byte、short、int、char、字符串(JDK1.7)、枚举(JDK1.5)

Switch的深入

switch底层判断数据的逻辑是什么?
switch底层是比较int值是否相同

​ byte --> int 自动转型
​ short -> int 自动转型
​ int —> int 直接使用
​ char --> int 获取字符的码值
​ 字符串-> int 获取字符串的hash值(“abc” -> [‘a’,‘b’,‘c’] -> [97,98,99] -> 通过字符的码值+hash算法获取出的hash值)
​ 枚举 --> int 获取枚举类里的对象编号(对象编号从0开始,对象编号是int类型)

import java.util.Scanner;
public class Test09{		
	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;
		}
		if(day != 0){
			System.out.println(year + "年" + month + "月的天数为:" + day + "天");
		}else{
			System.out.println("输入错误");
		}
	}
}	
知识点:if vs switch

表达式的区别
if – 只能放boolean
switch – byte、short、int、char、字符串、枚举
应用场景的区别
if判断区间、复杂条件
switch判断单个值是否相同

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值