流程控制
流程控制语句分类
1.顺序结构: 按照代码的书写顺序,从上而下依次执行
2.选择/分支结构
(1)if语句【重点】
(2)switch语句
3.循环结构
(1)for循环【重点】
(2)while循环
(3)do-while循环
选择结构-if
英文单词if是: 如果的意思
1.if语句的第一种格式:
if(布尔表达式){
语句体;
}
其它语句;
2.if语句的第二种格式:
if(布尔表达式){
语句体1;
} else {
语句体2;
}
其它语句;
public class Demo02If {
public static void main(String[] args) {
//需求1:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b
int a = 10, b = 20;
if (a == b) {//10 == 20: false,不执行{}中的语句体
System.out.println(a + "等于" + b);
}
if (a != b) {//10 != 20: true,执行{}中的语句体
System.out.println(a + "不等于" + b);
}
//需求2:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c
int c = 30;
if (a == c) {//10 == 30: false,不执行{}中的语句体
System.out.println(a + "等于" + c);
}
if(a != c) {//10 != 30: true,执行{}中的语句体
System.out.println(a + "不等于" + c);
}
System.out.println("main....end....");//模拟格式中的其它语句
}
}
if(a == b){
System.out.println(a + "等于" + b);
} else {
System.out.println(a + "不等于" + b);
}
其它语句;
选择结构-switch【重点】
1.switch语句的格式:
switch(表达式) {
case 常量值1;
语句体1;
break;
case 常量值2;
语句体2;
break;
…
case 常量值n;
语句体n;
break;
default:
语句体n+1;
break;
}
其它语句;
public class Demo01Switch {
public static void main(String[] args) {
int choose = 2;
switch (choose) {//30
case 1:
System.out.println("你好~~~~~");
break;
case 2:
System.out.println("我好~~~~~");
break;
case 3:
System.out.println("大家好,才是真的好~~~~~");
break;
default:
System.out.println("他好,我也好~~~~");
break;
}
System.out.println("main....end....");//模拟格式中的其它语句
}
}
使用case穿透优化根据月份输出对应的季节的案例
public class Demo03SwitchMonth {
public static void main(String[] args) {
//1.创建键盘录入Scanner类的对象
Scanner sc = new Scanner(System.in);
//2.获取键盘录入的一个1-12的整数数字(代表月份),保存到int变量month中
System.out.println("请输入一个1-12的整数数字(代表月份): ");
int month = sc.nextInt();
//3.因为month中的数字有12+1中情况,使用switch语句对month中的值,进行判断,并输出不同的结果
switch (month) {//9
case 1:
case 2:
case 12:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("您输入的月份不存在,哪个星球来的,哥屋恩...");
break;
}
System.out.println("main....end....");//模拟格式中的其它语句
}
}
循环语句
循环的分类:
(1)for循环【最最常用】
(2)while循环【一般常用】
(3)do-while循环【不常用】
1.for循环格式:
for(初始化表达式1;布尔表达式2;步进表达式4){
循环体3;
}
需求:
在控制台输出所有的“水仙花数”
解释:什么是水仙花数?
水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
例如 153 3*3*3 + 5*5*5 + 1*1*1 = 27 + 125 + 1 = 153
实现步骤:
1.使用for循环获取所有的三位数字,每个数字保存到int变量num中
1.1计算num中数字的个位,十位,百位 分别保存到3个int变量ge(个位),shi(十位),bai(百位)中
1.2计算个位,十位,百位数字的立方和,保存到int变量sum中
1.3判断如果三位数字num 等于 每位数字的立方和sum,输出该数字num
public class Demo06PrintSXH {
public static void main(String[] args) {
//1.使用for循环获取所有的三位数字,每个数字保存到int变量num中
for (int num = 100; num <= 999; num++) {
//1.1计算num中数字的个位,十位,百位 分别保存到3个int变量ge(个位),shi(十位),bai(百位)中
//123
int ge = num%10;//个位
int shi = num/10%10;//十位
int bai = num/100%10;//百位
//1.2计算个位,十位,百位数字的立方和,保存到int变量sum中
int sum = ge*ge*ge + shi*shi*shi + bai*bai*bai;
//1.3判断如果三位数字num 等于 每位数字的立方和sum,输出该数字num
if(sum == num) {
System.out.println(num);
}
}
}
}
2.while循环格式:
初始化表达式1;
while(布尔表达式2) {
循环体3;
步进表达式4;
}
其它语句;
需求:
在控制台输出5次HelloWorld
public class Demo01WhileHello {
public static void main(String[] args) {
//使用for
for (int i = 1; i <= 5; i++) {
System.out.println("HelloWorld...."+i);
}
System.out.println("-------------");
//使用while
int j = 1;
while(j<=5) {//j: 1,2,3,4,5 6<=5 --> false --> 结束while循环
System.out.println("HelloWorld~~~~~"+j);
j++;
}
System.out.println("main......end.....");
}
}
3.do-while循环格式:
初始化表达式1;
do {
循环体3;
步进表达式4;
}while(布尔表达式2);
public class Demo01DoWhileHello {
public static void main(String[] args) {
int i = 1;
do {
System.out.println("HelloWorld~~~~~"+i);
i++;
}while(i<=5);//2,3,4,5 6<=5: false,结束do-while循环,执行后面的语句
System.out.println("main....end....");
}
总结
掌握
if; if else;switch
for;while;do-whie循环
1.for/while: 先进行条件判断,后执行循环体 如果第一次条件不成立,循环体一次都不执行
2.do-while: 先执行,后判断条件 如果第一次条件不成立,循环体仍然执行一次
do-while: 循环体,至少执行一次
3.for循环内部定义的循环变量,for循环外面不可以使用
4.while/do-while: 初始化表达式中定义的变量,while/do-while外面可以使用