一、if...else....分支语句
(1)共分为四种结构:
package departzhi; //关于条件控制语句,流程控制语句if...else... // 语法:
(2)代码示例:
1.判断一个数字是奇数还是偶数
int n = 5;
if (n % 2 == 0) {//n取余
System.out.println("偶数");
} else {
System.out.println("奇数");
}
2.判断是否登录成功
public class Ifelse01 {
public static void main(String[] args) {
boolean isSuccess=true;
if(isSuccess){
System.out.println("登录成功");
}else{
System.out.println("登陆失败");
}
//分支语句中,如果只有一条Java语句,可以省略大括号(但不推荐)
if(isSuccess)
System.out.println("登录成功");
else
System.out.println("登陆失败");
}
}
3. 判定一个数字是正数还是负数
int n = 1;
if (n > 0) {
System.out.println("正数");
} else if (n < 0) {
System.out.println("负数");
} else {
System.out.println("0");
}
(3)注意:
1.在if语句中只要有一个分支执行,则整个if语句结束。 2.上面的二、四可以保证一定会有一个分支语句执行,因为他们都有else语句。 3.if / else 语句中可以不加大括号,但是也可以写语句(只能写一条语句),此时 else 是和最接近的 if 匹配,但实际上不建议这么写,最好加上大括号。
(4)举例:需求: 1.系统给定人的年龄[1-1000] 2.系统给定程序,通过人的年龄,来判断这个人处于生命的哪个阶段: [1-5]幼儿 [6-18]少年 [19-35]青年 [36-55]中年 [56-100]老年 请用if...else...语句public class Ifelse02 { public static void main(String[] args) { int i = 21;//i为年龄 if (i >= 1&&i <= 5) { System.out.println("幼儿"); } else if (i <= 18) { System.out.println("少年"); } else if (i <= 35) { System.out.println("青年"); } else if (i <= 55) { System.out.println("中年"); } else if (i <= 100) { System.out.println("老年"); } } }
二、switch分支语句
(1)结构:
package departzhi;
(2)代码示例:
1.根据 day 的值输出星期
int day = 7;
switch(day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入有误");
break; }
//根据 switch 中值的不同, 会执行对应的 case 语句. 遇到 break 就会结束该 case 语句.
//如果 switch 中的值没有匹配的 case, 就会执行 default 中的语句.
//一个 switch 语句最好都要带上 default.
2.根据字母输出等级
public class Switch01 {
public static void main(String[] args) {
char a='C';
switch(a){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("良好");
break;
case 'C':
System.out.println("及格");
break;
default:
System.out.println("不及格");
}
}
}
(3)注意:
1.break、defalut语句可以没有 2.switch里的int和case里的int一个一个进行匹配,遇到break结束 3.case下如果没有break,则到下一个case语句(case穿透现象) 4.如果都没有匹配上,则进行defalut语句 5.switch后面的括号里无论填什么类型,都会自动转换为int类型 6.case可以合并
//case可以合并
char a='C';
switch(a){
case 'A':case 'B':case 'C':
System.out.println("优秀");
break;
(4)举例:
需求: 1.系统给定学生的成绩,成绩可以带小数.[0-100] 2.编写程序根据学生的程序判断学生成绩等级: [90-100]优秀 [70-90]良好 [60-70]及格 [0-60]不及格 以上程序只允许使用switch语句public class Switch02 { public static void main(String[] args) { //假定成绩合法 double score=95.5; int grade=((int)score)/10; switch(grade){ case 9: case 10: System.out.println("优秀"); break; case 7: case 8: System.out.println("良好"); break; case 6: System.out.println("及格"); break; default: System.out.println("不及格"); } } }
三、For循环语句
(1)结构:
普通for循环语句结构:
package departzhi;
public class For01 {
关于for循环的嵌套:
package departzhi;
public class For02 {
public static void main(String[] args) {
for(int i=5;i>0;i--){
for(int j=0;j
(2)代码示例:
1.打印 1 - 10 的数字
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
2.计算10的阶乘
int sum=0;
int k=1;
int i=1;
for (int i = 1; i <= 10; i++) {
k=k*i;//1*1 1*1*2 1*1*2*3......
sum+=k;
}
System.out.println(sum);
(3)注意:
1.for循环开始执行,先执行表达式1,并只执行一次
2.进而判断表达式2的结果,如果是true,则执行java语句
3.再而执行表达式3,然后再判断表达式2的结果,直到表达式2结果是false,则for循环结束
(4)举例:
1.需求:
使用嵌套的for循环打印九九乘法表
1*1=1
2*1=2 2*2=4
........
9*1=9...........9*9=81
public class For03 {
public static void main(String[] args) {
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
2.需求:
计算1-100之间所有奇数的求和
//法一:
public class For04 {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<100;i++){
if(i%2!=0) {
//取余,获取奇数
//追加
sum += i;
}
} System.out.println(sum);
}
}
四、while循环语句
(1)结构:
while循环
package departzhi;
import org.w3c.dom.ls.LSOutput;
public class While01 {
public static void main(String[] args) {
do while
package departzhi;
public class while02 {
public static void main(String[] args) {
int i=0;
do{
i++;
System.out.println(i);
}while(i<10);
}
}
(2)代码示例:
1.打印1-10、1-9的数字
//打印1-10
int i=0;
while(i<10){
i++;
System.out.println(i);//0 1.....10
}
}
}
2.计算 1! + 2! + 3! + 4! + 5!
int num = 1;
int sum = 0;
// 外层循环负责求阶乘的和
while (num <= 5) {
int factorResult = 1;
int tmp = 1;
// 里层循环负责完成求阶乘的细节.
while (tmp <= num) {
factorResult *= tmp;
tmp++;
}
sum += factorResult;
num++; }
System.out.println("sum = " + sum);
//注意事项
//1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
//2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
//3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.
(3)注意:
1.while循环执行的次数是:0-N次
2.do while循环执行的次数是:1-N次
五、break(让循环提前结束)
代码示例: 找到 100 - 200 中第一个 3 的倍数
int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍数, 为 " + num);
break;
}
num++; }
// 执行结果
找到了 3 的倍数, 为 102
六、continue(跳过这次循环, 立即进入下次循环.)
代码示例: 找到 100 - 200 中所有 3 的倍数
int num = 100;
while (num <= 200) {
if (num % 3 != 0) {
num++; // 这里的 ++ 不要忘记! 否则会死循环.
continue;
}
System.out.println("找到了 3 的倍数, 为:" + num);
num++; }
//执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句



