switch语句特点:
a,switch语句选择的类型只有四种:byte,short,int, char。
b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
c,结束switch语句的两种情况:1、遇到break结束;2、执行到switch结尾结束。
d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
注:JDK1.5以后可以接收枚举类型,JDK1.7以后可以接收字符串。
if和switch语句很像。具体什么场景下,应用哪个语句呢?如果判断的具体数值不多,而且符合byte short int char这四种类型。虽然两个语句都可以使用,建议使用switch语句,因为效率稍高。其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
3、 循环结构——while,do while,for
while语句格式:
while(条件表达式)
{
执行语句;
}
do while语句格式:
do
{
执行语句;
}while(条件表达式);
while和do while的区别:
while:先判断条件,只有条件满足才执行循环体。
do while:先执行循环体,再判断条件,条件满足,再继续执行循环体。
简单一句话:do while:无论条件是否满足,循环体至少执行一次。
for语句格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
/*
需求:统计水仙花数有多少个
*/
class WhileDemo{
public static void main(String[] args) {
//for循环版本
// 定义统计变量,初始化值是0int count = 0;
//3位数告诉了我们范围,用for就可以搞定,三位数初始值100,小于1000 或 <=999for (int i = 100; i < 1000; i++)
{
// 获取每一个三位数的个,十,百的数据
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 10 / 10 % 10;
//按照要求进行判断
if (i==(ge*ge*ge + shi*shi*shi + bai*bai*bai))
{
System.out.println(i);
count++;
}
}
System.out.println("水仙花数一共有"+count+"个");
System.out.println("------------");
//while循环版本
int count2 = 0;
inty = 100;
while(y<1000) {
int ge = y%10;
int shi = y/10%10;
int bai = y/10/10%10;
if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == y) {
count2++;
}
y++;
}
System.out.println("count2:"+count2);
}
}