第三天 Java语言基础
一、三元运算符
三元运算符,也称为三目运算符或问号冒号运算符。即有三个表达式参与的运算表达式。既然是个运算符,那么运算完必须有运算结果。
1)三元运算符的格式
(表达式1)?表达式2:表达式3;
2)三元运算符的运算原则
<1>表达式1运算结果必须为boolean类型的值。
<2>当表达式1的结果为true时,表达式2的运算结果就为整个三元运算符的结果。
<3>当表达式1的结果为false时,表达式3的运算结果就为整个三元运算符的结果。
3)三元运算符举例
使用三元运算符求两个数的最大值
二、程序运行流程&顺序结构
什么是程序的流程你?即就是代码的执行顺序
上述代码当在dos命令行中写入java Demo 回车之后,首先会启动JVM,JVM就会去加载当前这个class文件,并执行其中的main方法。当程序执行main方法的时候会从第一行开始往下执行,直到整个代码全部执行完成。在此过程中程序按照书写的顺序,不会跳过任何一行代码。像这样的执行流程就是常见的顺序执行结构。
三、判断结构(if)
if是Java中的关键字,当程序在执行过程遇到if关键字,JVM就知道此处需要进行判断,根据判断结果需要处理相应的代码。
1)if判断第一种格式
if(条件表达式)
{
执行语句;
}
格式说明:if关键字后面是一对小括号,小括号后面是没有分号的,小括号中的表达式运算完的结果必须是bollean类型的值。
if流程控制执行顺序:JVM在执行代码时,遇到if关键字,首先会运算if括号中的表达式,当if中表达式的值为true时,就会执行if后面大括号中的语句。当if中表达式的值为false时,就会跳过if后面大括号中的语句,继续执行大括号下面的其他语句。
代码演示:
2)if判断第二种格式
if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
执行说明:当if条件表达式为true时,执行if后面大括号中的语句,当if条件表达式为false时,执行else后面大括号中的语句。if-else格式组合成一条判断结构语句。要么执行if后面的语句,要么执行else后面的语句。切记,else后面的语句要能够执行,if中的条件表达式结果必须是false。
代码演示:
3)三元运算符可以简化if-else格式
下面代码可以使用三元运算简化:
三元运算符是简写的if-else格式,简写是有弊端:不是所有的if-else都能简化,三元运算符运算完成必须有结果,而if-else不一定运算完一定有运算结果。
4)if判断第三种格式:
if(条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
......
else
{
执行语句
}
代码演示:
四、多分支结构(switch)
1)switch语句格式
switch(表达式)
{
case 取值 1:
执行语句;
break;
case 取值 2:
执行语句;
break;
......
default:
执行语句;
break;
}
2)代码演示
3)switch语句特点
switch语句选择的类型只有四种:byte,short,int,char。(java5之前)。还支持enum(jdk5),String(jdk7);
case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
结束switch语句的两种情况:遇到break,执行到switch语句结束。
如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
4)switch练习
根据用户的给定的数值,显示该数值对应的星期。如:2,星期二。
5)if和switch的区别
if可以用于判断数值,也可以判断区间,只要运算结果是boolean类型,都可以进行判断。
switch用于对固定的几个值,进行判断。判断的值的类型有限。
五、循环结构(while&do-while)
1)循环结构
根据程序的需求,可以将某些代码重复执行的操作。Java中的循环结构有如下三种:
while:事先不需要知道循环执行多少次;
do-while:同上,只是至少要执行一次(先做,后判断);
for:需要知道循环次数;
2)while循环
格式:
while(条件表达式)
{
执行语句;
}
while执行顺序:当程序遇到while关键字时,JVM首先会运算while后面的表达式,当条件表达式为true时,就会执行while后面大括号中的语句,当把大括号中的所有语句执行完之后,会又回到while的条件表达式处再次判断,若还为true,就继续执行大括号中的语句,若为false就跳过大括号中的所有语句,继续往下执行。
3)while代码举例
4)while练习
5)while循环注意事项:
<1>while循环的括号中的表达式计算结果必须为bollean类型的值。
<2>while循环的括号中不能直接写false常量。
<3>while循环的括号后面不要写分号,循环控制的语句的代码用大括号括起来。
<4>while循环控制的条件变量一定要更新,保证循环能够正常结束。
6)do-while循环
格式:
do
{
执行语句;
}while(条件表达式);
执行顺序:先执行do后面的语句,当执行完之后再进入条件表达式进行判断,若条件表达式结果为true继续执行do后面的语句,若条件表达式结果为false,则结束循环。
do while特点是无论条件是否满足,循环体至少被执行一次。
7)while和do-while对比
以下两个程序的执行结果:
六、循环结构(for)
1)for循环格式
for(初始化表达式(1);循环条件表达式*(2);循环后的操作表达式(3))
{
执行语句;(4)
}
执行顺序:for里面的3个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。
2)for循环代码举例
3)for和while的区别
while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
4)无限循环
最简单无限循环格式:while(true){},for(;;){},无限循环存在的原因是不知道循环多少次,而是根据某些条件,来控制循环。
5)for循环练习
七、循环嵌套
循环嵌套:其实就是在循环中还有循环。简称大圈套小圈
1)循环嵌套代码演示
2)循环嵌套练习
<1>需求:要求在屏幕上显示下列内容。
八、流程控制(continue,break)
1)break语句、continue语句;
break:终止该层循环;
continue:跳过该层循环
注:
①:若这两个语句离开应用范围,存在是没有意义的。
②:这个两个语句单独存在后面都不能有语句,因为执行不到。
③:continue语句是跳过本次循环,继续下次循环。
④:标签的出现,可以让这两个语句作用于指定的循环。
2)break语句、continue语句举例
break语句是终止循环,即在程序中遇到break,那么break所属的循环将结束。
for(int x=0;x<3;x++)
{
if(x==1)
break;
System.out.println("x="+x);
}
continue是结束本次循环,继续下次循环。循环是不会结束的。
for(int x=0;x<10;x++)
{
if(x%2==0)
continue;
System.out.println("x="+x);
}
3)使用循环标签;
在多层嵌套循环中,终止/跳过标签标记的那层循环的执行;break <标签> 或 continue <标签>;
<需求>在屏幕上显示下列内容: