if【重点之重点:应用】
循环结构【重点之重点:应用】
(1)for循环: 重点中的重点
(2)while循环: 重点
(2)switch语句:非重点
(3)do-while循环: 非重点
if语句的第一种格式:
if(布尔表达式){
)if后面()中的表达式,不管多么简单或者多么复杂,结果必须是布尔类型,要么是true,要么是false
语句体;
}
其它语句
if(布尔表达式){ ### 判断大小 ### 获取最大值### 判断奇偶数
)if后面()中的表达式,不管多么简单或者多么复杂,结果必须是布尔类型,要么是true,要么是false
语句体;
} else {
语句体2;
}
其它语句
需求:
获取键盘录入的两个整数数字(int),计算出两个整数数字的最大值,并输出最大值
实现步骤:
1.创建键盘录入Scanner类的对象
2.获取键盘录入的两个整数数字,保存到两个int变量a和b中
3.使用if-else语句获取a和b的最大值,保存到int变量max中
4.输出max的值
import java.util.Scanner;
public class Demo03IfElse {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数数字: ");
int a = sc.nextInt();
System.out.println("请输入第二个整数数字: ");
int b = sc.nextInt();
int max;
if(a>b){
max = a;
} else {
max = b;
}
System.out.println("数字: "+a+" 和 "+b+" 的最大值是: "+max);
}
}
##### if语句的第三种格式介绍
.if语句的第三种格式:
if(布尔表达式1){
语句体1;
} else if(布尔表达式2){
语句体2;
}
...
else if(布尔表达式n){
语句体n;
} else {
如果没有任何布尔表达式为true,就执行语句体n+1
最后一个else后面是没有条件的,是用来兜底的,如果前面的所有条件都不成立,执行最后一个else中的代码
语句体n+1;
}
其它语句;
不能直接在else后面写条件,只能在if后面()中写条件
有if就可以写条件,没有if就不能写条件
### if语句的第三种格式练习根据成绩进行奖励
数学中[95,100]: 95=<score<=100
java中[95,100]: score>=95 && score<=100
## 循环结构
重复执行某些固定的功能,当条件不成立时,结束循环
1.循环的组成(手写100遍HelloWorld案例):
(1)【初始化表达式1】准备工作:笔墨伺候,最优先唯一执行一次的操作定义循环变量
(2)【循环条件2】条件判断布尔表达式:每次书写前,判断一下,要不要写
(3)【循环体3】循环所要进行的操作:手写一个HelloWorld案例
(4)【步进表达式4】扫尾的工作:每写一次HelloWorld,计数(+1)一步一步修改循环变量的值导致循环变量为false结束循环
2.执行流程:
1,2(true),3,4 --> 2(true),3,4 --> ... --> 2(false),结束循环
### **for循环语句**
1.for循环格式:
for (初始化表达式1;布尔表达式2;步进表达式4) {
循环体3;
}
其它语句;
2.执行流程:
1,2(循环条件:true),3,4 --> 2(循环条件:true),3,4 -->
... --> 直到2(循环条件:false)为false时,结束for循环,执行后面的其它语句
3.注意:
(1)for和(),以及()和{}之间是没有分号的
(2)()中有3个表达式,之间用2个分号(缺一不可)隔开,第三个表达式后面没有分号
(3)第二个表达式一定是布尔类型,结果只能是true和false
(4)循环体就是一条/多条语句
4.总结
对于求和,计数的需求,解决方案:
(1)循环的前面定义求和/计数变量
(2)循环的内部完成求和/计数功能的实现
(3)循环的后面打印求和/计数变量的结果数据
需求: 求1-5之间的数据和,并把求和结果在控制台输出
实现步骤:
1.定义int变量sum,初始值0,用来累加求和
2.使用for循环获取1到5之间的数字,循环变量int类型的num
3.把num中的数字,累加到求和变量sum中
4.打印sum的值
public class Demo03ForSum5 {
public static void main(String[] args) {
int sum = 0;
for (int count = 1; count <= 5; count++)
for (int times = 0; times < 5; times++)
for (int j = 5; j >= 1; j--)
for(int num = 1;num<=5;num++) {
sum = sum + num;
}
System.out.println("1到5的数字之和: "+sum);
}
}
求1-100之间的偶数和
for (int num = 1; num <= 100; num++) {
if (num % 2 == 0) {
sum += num;
}
}
需求: 有个int变量num,内部存储了一个三位数字,获取num中三位数字的个位,十位,百位,并输出
实现步骤:
1.定义int变量num,并初始化
2.计算num中数字的个位,十位,百位,分别保存到3个int变量ge,shi,bai中
3.打印结果数据
总结:
int变量num
个位: num%10
十位: num/10%10
百位: num/100%10
千位: num/1000%10
需求: 在控制台输出所有的“水仙花数”及总个数
水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
例如 153 3*3*3 + 5*5*5 + 1*1*1 = 27 + 125 + 1 = 153
public class Demo06ForSXH {
public static void main(String[] args) {
int count = 0;
for (int num = 100; num <= 999; num++) {
int ge = num%10;
int shi = num/10%10;
int bai = num/100%10;
int sum = ge*ge*ge + shi*shi*shi + bai*bai*bai;
if (sum == num) {
count++;
System.out.println(num);
}
}
System.out.println("以上水仙花数字总共有: " + count + " 个");
}
}