转义字符
见 Test01
含义:具有特殊意义的字符本身 特殊意义的字符 转义字符 " " ' ' \ \ 换行 \n 水平制表 \t
常量
见 Test01
含义:在程序执行过程中,不可发生改变的量 分类:
1.数字字面量:在程序中出现的数字
整数默认int类型 小数默认double类型
ps: System.out.println(10000);
2.字面值常量:使用双引号扩起来的内容
ps: System.out.println("教育");
3.使用final(最终的)修饰的变量,变成常量
ps: final int i = 100; System.out.println(i);
java的执行语句
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 lable
if分支
简单的if分支
见 Test02
语法结构: if(表达式){ ...代码块... } 理解: 表达式的结果必须是boolean true - 执行代码块 false- 跳出分支语句,执行if以外的代码
总结:if(){}要么进入判断,要么不进入判断
复杂的if分支
见 Test03
案例一:人类的健康值在20-25的数值内为健康 (健康值算法为:体重(Kg) / 身高(米)的平方)
案例二:小红Java成绩大于98分,而且音乐成绩大于80分,老师奖励他; 或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他。
扩展:命名规范 帕斯卡命名法/大驼峰命名法:单词首字母大写 应用:类名 驼峰命名法/小驼峰命名法:除了第一个单词,其余的单词首字母大写 应用:方法、变量 总结:if分支可以判断区间、也可以判断复杂的条件
if...else...
见 Test04
语法结构: if(表达式){ ...代码块... }else{ ...else代码块... }
理解: 表达式的结果必须是boolean true - 执行代码块 false- 执行else代码块
案例:如果小红Java考试成绩大于98分, 老师就奖励他一个劳斯莱斯,否则老师就罚他进行编码
总结: if...else...:二选一的情况下使用
多重if分支
见 Test05
语法结构: if(表达式1){ ...代码块1... }else if(表达式2){ ...代码块2... }else if(表达式n){ ...代码块n... else{ ...else代码块... }
理解: 多个表达式,从上往下判断,哪个表达式先成立(true),就执行对应的代码块,执行完毕后跳出整个分支语句 如果表达式的条件都不成立,就执行else{} 注意:else{}根据需求,可写可不写
案例一:人类的健康值在 15-20的数值内为偏瘦 20-25的数值内为健康 25-30的数值内为偏胖 (健康值算法为:体重(Kg) / 身高(米)的平方)
案例二:通过键盘录入学生成绩 如果在90-100之间,则打印“A”, 否则如果在80-90之间,则打印“B”, 否则如果在70-80之间,则打印“C” 否则如果在60-70之间,则打印“D” 否则如果在0-60之间,则打印“E” 否则打印“成绩异常”
总结:多选一的情况下,使用多重if分支
嵌套if分支
见 Test06
案例:学校举行运动会,百米赛跑跑入16秒内的学生有资格进决赛, 根据性别分别进入男子组和女子组。
总结: if(){}要么进入判断,要么不进入判断 if分支可以判断区间、也可以判断复杂的条件 if...else...:二选一的情况下使用 if...else if...:多选一的情况下,使用多重if分支 if可以嵌套
switch分支的使用
见 Test07
语法结构: switch(表达式){ case 值1: ...代码块1... break; case 值2: ...代码块2... break; case 值n: ...代码块n... break; default: ...default代码块... break;
理解: 表达式的结果可以是byte、short、int、char、字符串、枚举 表达式的结果依次和值1、值2、值n比较,哪个相同就执行对应的代码块 break的作用是跳出整个分支语句 default类似于if中的else(其余情况) default根据需求可写可不写
案例:小明参加计算机编程大赛 如果获得第一名,将参加千锋组织的1个月马尔代夫旅游 如果获得第二名,将奖励苹果Pro笔记本电脑一部 如果获得第三名,将奖励移动硬盘一个 否则,老师晚上给小明通宵补课
总结:switch是判断单个值是否相同时使用
switch分支的深入
见 Test08
面试题: case的值可以相同吗? 不允许相同 default可以省略吗? 可以
break可以省略吗? 可以省略
default的位置一定要在最后吗? 不一定放在最后,但是最好放在最后,因为考虑到代码的可读性
case后值可以是不一样的类型吗? 可以,但必须兼容
表达式值的类型可以是什么? 类型可以是byte、short、int、char、字符串(JDK1.7)、枚举(JDK1.5)
扩展:switch判断值的底层原理只会识别int值 byte - 自动向上转型 -> int short - 自动向上转型 -> int char - 获取ASCII码 -> int 字符串 - hash值 -> int
需求:输入年和月,输出当月的天数
if vs switch 表达式的区别: if:boolean switch:byte、short、int、char、字符串(JDK1.7)、枚举(JDK1.5) 应用场景的区别: if:判断区间、判断复杂条件 switch:判断单个值
初识for循环
见 Test09
好处:解决代码的冗余 语法结构: for(初始化变量;判断条件;更新变量){ ...代码块/循环体... } 执行步骤: 1.初始化变量 2.判断条件:该条件必须是boolean类型 true -- 执行代码块,更新变量,再重复第2个步骤 false - 跳出整个循环
for循环变形记:
int i = 0; for(;i<5;){ System.out.println("用良心做教育"); //i++; ++i; } System.out.println(i);
注意: 1.在for循环中声明的变量的作用域只在循环中有效 2.更新变量中使用i++和++i没有区别
伪死循环:
for(int i = 0;i>= 0;i++){ System.out.println("伪死循环"); }
理解:int最大值为21亿,循环21亿次后再++,就变成了负数了
小结: 1.初始化变量不一定从0开始 2.更新变量不一定每次都是++