文章目录
前言
本模块主要学习if条件分支语句、switch开关语句、循环语句、break和continue语句
一、if条件分支
1、语法格式:
if (表达式) {//表达式为真时,执行语句1
语句1;
} else {//否则执行语句2
语句2;
}
2、判断奇偶
int n = 0;
if (n % 2 == 0) {
System.out.println("是偶数");
} else {
System.out.println("是奇数");
}
3、判断正负
int n = 10;
if (n > 0) {
System.out.println("是正数");
} else if (n == 0) {
System.out.println("是0");
} else {
System.out.println("是负数");
}
4、判断是否是闰年
int year = 2000;
if (year % 100 == 0 ) {//世纪闰年
if (year % 400 == 0) {
System.out.println("是闰年!");
} else {
System.out.println("不是闰年!");
}
} else {//普通闰年
if (year % 4 == 0) {
System.out.println("是闰年!");
} else {
System.out.println("不是闰年!");
}
}
优化一下:
int year = 2000;
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
System.out.println("是闰年!");
} else {
System.out.println("不是闰年!");
}
5、悬垂else
int x = 10;
int y = 20;
if (x == 20)
if (y == 20)
int year = 2000;
System.out.println("aaaa");
else
System.out.println("bbbb");
结果:没有输出,原因:else只和最近的if相结合,x=10不进入循环,所以什么也不打印
实际表示为:
int x = 10;
int y = 20;
if (x == 20) {
if (y == 20) {
int year = 2000;
System.out.println("aaaa");
} else {
System.out.println("bbbb");
}
}
二、switch开关语句
1、基础语法
int a = 1;
switch(a) {
case 1:
System.out.println("1");
break;
case 2:
System.out.println("2");
break;
default :
System.out.println("输入错误");
break;
}
- switch语句首先计算表达式的值,如果表达式的值和某个case后面的常量值相等,就执行该case里的若干个语句,直到碰到break语句为止。
- 若是一个case中没有break,在执行完这个case中的语句后还会继续执行后面的case里的若干个语句,直到遇到break为止。
- 如果switch的表达式不与任何case的常量值相等,那么就执行default中的语句,如果没有default,那么switch语句不会进行任何处理。
- 不能做switch的参数类型有:float、double、long、boolean。
- 能做参数类型的有:整数、枚举、字符、字符串。
- switch支持嵌套,但是不太美观,所以尽量不要使用。
三、break和continue语句
1、break语句:
- 结束整个循环
找到100~200中第一个三的倍数
int i = 100;
while (i <= 200) {
if (i % 3 == 0) {
System.out.println("找到了第一个3的倍数,为" + i);
break;//让循坏提前结束
}
i++;
}
2、continue语句:
- 结束本次循坏
找到100~200中所有的倍数
int i = 100;
while (i <= 200) {
if (i % 3 != 0) {
i++;
continue;//跳过这次循坏,立即进入下次循环
}
System.out.println("找到了所有3的倍数,为" + i);
i++;
}
四、循环语句
1、for循环
基础语法
for (表达式1;表达式2;表达式3) {
若干语句;
}
- 计算表达式1,完成必要的初始化工作;
- 判断表达式2的值,为真则执行若干语句,为假就执行表达式3;
- 执行完若干语句之后,在执行表达式3;
计算1~100的和
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println(sum);
计算5!
int ret = 1;
for (int i = 1; i <= 5; i++) {
ret *= i;
}
System.out.println(ret);
计算5!+4!+3!+2!+1!
int sum = 0;
for (int i = 1; i <= 5; i++) {
int ret = 1;
for (int j = 1; j <= i; j++) {
ret *= i;
}
sum += ret;
}
System.out.println(sum);
2、while循环
基本语法
while (表达式) {
若干语句;
}
计算1~100的和
int sum = 0;
int i = 0;
while (i <= 100) {
sum += i;
i++;
}
System.out.println(sum);
计算1~100奇数的和, 1 ~100偶数的和
int i = 1;
int sum1 = 0;
int sum2 = 0;
while (i <= 100) {
if (i % 2 != 0) {
sum1 += i;
} else {
sum2 += i;
}
System.out.println(sum1);// 偶数和
System.out.println(sum2);// 奇数和
计算5!
int n = 5;
int ret = 1;
while (n <= 5) {
ret *= i;
i++;
}
System.out.println(ret);
计算5!+4!+3!+2!+1!
int i = 1;
int n = 5;
int sum = 0;
int ret = 1;
while (i <= n) {
ret *= i;
sum += ret;
i++;
}
System.out.println(sum);
3、do while循环
do {
若干语句;
} while (表达式);
至少会被执行一次,例如
int i = 0;
do {
System.out.println("hhhhhh");
} while (i != 0);
输出hhhhh