一、转义字符
含义:具有特殊意义的字符本身
\" 表示一个双引号字符
\' 表示一个单引号字符
\\表示一个斜杠字符
\n表示换行符
\t水平制表
二、常量
含义:程序执行过程中不可发生改变的量
分类: 1.数字字面量:程序中出现的数字 整数数字默认int类型 小数数字默认double类型
2.字面值常量:使用双引号括起来的内容
3.final修饰的变量:最终变量-常量 final int i = 100; System.out.println(i); 字面值常量和final修饰的变量:存放在常量池中,并且常量池中的数据不能重复,直到项目结束时常量池中的数据才会被清空。
三、Java执行语句
1、顺序语句
含义: 每一条顺序语句的执行顺序和书面顺序一致。
2、分支语句
a、if分支语句
语法结构:
if(表达式){
...代码块...
}
注意事项:
表达式的结果必须是boolean类型
true-执行代码块
false-跳过if分支
实例:
importjava.util.Scanner;
publicclassTest04{
publicstaticvoidmain(String[] args){
Scannerscan=newScanner(System.in);
System.out.print("请输入体重信息:");
doubleweight=scan.nextDouble();
System.out.print("请输入身高信息:");
doubleheight=scan.nextDouble();
doublehealth=weight/(height*height);
System.out.println("您的健康指数为:"+health);
//15-20的数值内为偏瘦
//20-25的数值内为健康
//25-30的数值内为偏胖
if(health>=20&&health<25){
System.out.println("您的健康状况为:健康");
}
elseif(health>=15&&health<20){
System.out.println("您的健康状况为:偏瘦");
}
elseif(health>=25&&health<30){
System.out.println("您的健康状况为:偏胖");
}
else{
System.out.println("您的健康状况为:异常");
}
System.out.println("检测结束!");
}
}
b、switch分支语句
语法结构:
switch(表达式){
case值1:
...代码块1...
break;
case值2:
...代码块2...
break;
case值n:
...代码块n...
break;
default:
...default代码块...
break;
}
注意事项:
表达式的结果分别给值1、值2、值n比较
哪个相同就执行对应的代码块
如果都不相同就执行default代码块
default代码根据需求可写可不写
面试题:
1、case的值可以相同吗?不可以
2、default可以省略吗?可以
3、break可以省略吗?可以
4、default的位置一定要在最后吗?不一定
5、表达式值的类型可以是什么?
byte、short、int、char、枚举(JDK1.5)、字符串(JDK1.7)
switch底层判断原理?
switch中判断的数据类型只有int
byte --自动向上转型成int
short--自动向上转型成int
char --获取字符的Unicode码
枚举 --获取对象在枚举中的序号
字符串--获取字符串的hash码
实例
//输入年和月,输出当月的天数
Scannerscan=newScanner(System.in);
System.out.println("请输入年份:");
intyear=scan.nextInt();
System.out.println("请输入月份:");
intmonth=scan.nextInt();
intday=0;
if(month==2){
if(year%4==0||year%400==0)
System.out.println(year+"年"+month+"月有29天");
else
System.out.println(year+"年"+month+"月有28天");
}
else{
switch(month){
case1:case3:case5:case7:case8:case10:case12:
day=31;
break;
case4:case6:case9:case11:
day=30;
break;
}
System.out.println(year+"年"+month+"月有"+day+"天");
}
c、if与switch的区别
表达式的区别: if:boolean switch:byte、short、int、char、枚举、字符串应用场景的区别: 判断区间、复杂条件 选 if 判断单个值是否相同 选 switch
3、for循环语句
语法结构:
for(表达式1;表达式2;表达式3){
...代码块/循环体...
}
理解:
表达式1--初始化变量
表达式2--判断条件(结果必须是boolean)
表达式3--更新变量
执行步骤:
1.初始化变量
2.判断条件(结果必须是boolean)
2.1true -执行代码块,再更新变量,最后重复第2个步骤
2.2false-跳出整个循环语句
需求1:打印以下图形
****
****
****
for(inti=0;i<3;i++){//外层循环控制行数
//System.out.println("****");
for(intj=0;j<4;j++){//内层循环控制列数
System.out.print("*");
}
System.out.println();//换行
}
需求2:打印以下图形
* i=0
** i=1
*** i=2
**** i=3
***** i=4
for(inti=0;i<5;i++){
for(intj=0;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
需求3:打印以下图形
*
**
***
****
*****
for(inti=5;i>0;i--){
for(intj=1;j<i;j++){
System.out.print(" ");
}
for(intk=5;k>=i;k--){
System.out.print("*");
}
System.out.println();
}
需求4:打印以下图形
*****
****
***
**
*
for(inti=0;i<5;i++){
for(intj=5;j>i;j--){
System.out.print("*");
}
System.out.println();
}
需求5:打印以下图形
*****
****
***
**
*
for(inti=5;i>0;i--){
for(intj=5;j>i;j--){
System.out.print(" ");
}
for(intk=0;k<i;k++){
System.out.print("*");
}
System.out.println();
}
需求6:打印以下图形
*
***
*****
*******
for(inti=4;i>0;i--){
for(intj=1;j<i;j++){
System.out.print(" ");
}
for(intk=4;k>=i;k--){
System.out.print("*");
}
for(intj=4;j>i;j--){
System.out.print("*");
}
for(intk=1;k<i;k++){
System.out.print(" ");
}
System.out.println();
}
需求8:打印以下图形
*******
*****
***
*
for(inti=4;i>0;i--){
for(intk=4;k>i;k--){
System.out.print(" ");
}
for(intj=0;j<i;j++){
System.out.print("*");
}
for(intk=1;k<i;k++){
System.out.print("*");
}
for(intj=4;j>i;j--){
System.out.print(" ");
}
System.out.println();
}