一:复习回顾
语句:
(1)顺序结构
(2)选择结构:if if ...else if else if.. .else
switch case语句:
(3)循环结构:
二:switch case语句:
语法:
switch(表达式){
case 常量变量1: 语句一;
break;
case 常量变量2: 语句二;
break;
case 常量变量3: 语句三;
break;
...
}
解释:
(0)switch()当中的表达式可以是整型( 非 long),字符型。
从JDK 7开始,可以使用字符串。
表达式的类型要跟常量标号的类型相同。或者是相兼容。
(1)首先会计算表达式的值。
(2)表达式的值会常量标号进行匹配,执行响应的case语句。
执行完相应的case语句,需要结束当前的的switch时,使用
break关键字。
(3)当表达式的值和任何的常量标号不能批配的时候,默认
会执行default语句。
三: 问题
(1)条件运算符和 if ...else 的区别?
条件运算符:就是一个运算符,运算结果必须要返回一个值。
简捷,运行效率比if else高。
if else ...数据处理能力比条件运算符强。
结论:如果能有条件运算符完成的,使用条件运算符完成。
不能使用条件运算符完成的使用if else 执行。
(2)if else 和switch的区别?
switch: 如果判断的具体的数值不多,而且复合非long整形,可以使用Switch。效率也比if else高。
对于一些区间的判断,对结果为boolean类型判断,只能使用if。
四: 循环控制:for while do...while
for循环:
1:语法:
for(表达式1;表达式2;表达式3){
...被重复执行的代码;
}
解释:
表达式一:初始化一个循环变量。
表达式二: 循环条件。能够确定循环的次数。返回的结果是一个boolean类型。
表达式三: 使表达式二趋于false结果。
执行顺序:
(1)先执行表达式一。
(2)执行表达式二:返回一个boolean类型的结果。当结果为true时,执行语句。
(3)执行表达式三:
(4)执行表达式二; 返回一个boolean类型的结果,继续执行语句。再执行表达式三,这样周而复始的执行。
当表达式二的结果为false的时候,结束for循环。
2: 注意事项:
(1) 如果循环体语句只有一句的时候,{}可以省略,不建议大家省略。
3:for循环的变形:
变量的声明:
for(;循环条件;){
//循环语句:
表达式三;
}
4:for的无限死循环形式:
for(;;){
}
while循环:
语法:
初始化一个变量;
while(循环条件){
// 也结束while循环的 条件
}
循环条件必须是一个boolean类型;当boolean返回的是一个true,执行循环体。
当boolean返回的结果是false。 循环体不执行。
结束while循环:方式一
方式一:使用while的循环条件趋于false。
方式二:使用关键字break。跳出循环;
while无限循环的形式:
while(true){
}
//案例: 使用while循环斐波那契打印斐波那契数列:最大相项不能超过10000.
1 1 2 3 5 8 13...
m n k
m n k
m n k
while循环和for循环如何选择?
1:明确循环次数的情况下,可以使用for。
2:不明确循环次数的时候使用while。
do...while循环:
语法:
do{
循环体
}while(表达式);
语法的解释:
执行顺序:先执行do当中的循环体。 之后去判断循环条件,如果循环条件返回的是true,
再次执行循环体。 如果返回的结果为false,while循环结束。
案例:
给定月份,打印季节。
给定分数,打印等级。
给定年份,求每个月的天数。
判断给定年份是平年还是闰年,平年2月28天,闰年2月29天。
给定三角形的三条边,求面积。(海伦公式)Math类当中的方法。
海伦公式:
给定一个一元二次方程,求解:
给定一个时间,打印下一秒的时间。
使用switch case语句,自作一个简单的计算器。
打印1-100之间所有的奇数的个数。
打印1-100之间的所有的能被3或者是能被7整个的数, 然后五个换行。
打印1-100之间的和:
打印1-100之间的所有的素数。(质数)
打印100-999之间的水仙花数。
100-999之间的水仙花的个数。
斐波那契数列
1 1 2 3 5 8 。。。