1.1流程控制语句
- if语句的第一种格式:
if语句的第一种格式:
if(布尔表达式){
语句体;
}
其它语句;
- if语句的第二种格式:
if(布尔表达式){
语句体1;
} else {
语句体2;
}
- 练习
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
/*
需求:
让用户依次录入三个整数,求出三个数中的最大值,并打印到控制台。【使用if】
*/
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个整数数字");
int a = scanner.nextInt();
System.out.println("请输入第二个整数数字");
int b = scanner.nextInt();
System.out.println("请输入第三个整数数字");
int c = scanner.nextInt();
int max = 0;
//方式一: 使用三元运算符
//int temp = (a > b) ? a : b;
//int max = (temp > c) ? temp : c;
//方式二: 使用两个if-else
/*int temp;
if (a > b) {
temp = a;
} else {
temp = b;
}
int max;
if (temp > c) {
max = temp;
} else {
max = c;
}*/
//方式三: 假设a是最大的
/*int max = a;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}*/
//方式四: a,b,c的最大值要么是a,要么是b,要么是c
//int max;
//if (a >= b && a >= c) {
// max = a;
//} else if (b >= a && b >= c) {
// max = b;
//} else {
// max = c;
//}
if (a > b) {
if (a > c) {
max = a;
} else {
max = c ;
}
} else {
if (b > c) {
max = b ;
}else {
max = c ;
}
}
System.out.println("三个数中最大的数是:"+max);
}
}
- if语句的第三种格式:
1.if(布尔表达式1){
语句体1;
} else if(布尔表达式2){
语句体2;
}
...
else if(布尔表达式n){
语句体n;
} else {
语句体n+1;
}
其它语句;
2.执行流程:
(1) 首先计算布尔表达式1的值,判断其结果是true还是false
(2) 如果是true就执行语句体1
(3) 如果是false就继续计算布尔表达式2,判断其结果是true还是false
(4) 如果是true就执行语句体2
(5) 如果是false就继续计算布尔表达式…,判断其结果是true还是false
(6) …
(7) 如果没有任何布尔表达式为true,就执行语句体n+1
- 练习
/*
需求:
键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
演示效果:
输入 1 输出 星期一
输入 2 输出 星期二
输入 3 输出 星期三
输入 4 输出 星期四
输入 5 输出 星期五
输入 6 输出 星期六
输入 7 输出 星期日
输入 其它数字 输出 数字有误
实现步骤:
1.创建键盘录入Scanner类的对象
2.获取键盘录入的代表星期数的整数数字,保存int变量week中
3.因为week中的数字有7+1种情况,使用if语句第三种格式对week中数字进行判断,并输出对应的星期数
*/
public class Demo03IfElseIfWeek {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入代表星期的整数数字(1-7)");
int week = scanner.nextInt();
if (week < 1 || week > 7) {
System.out.println("非法数字");
}else if (week == 1){
System.out.println("星期一");
} else if (week == 2) {
System.out.println("星期二");
} else if (week == 3) {
System.out.println("星期三");
} else if (week == 4) {
System.out.println("星期四");
} else if (week == 5) {
System.out.println("星期五");
} else if (week == 6) {
System.out.println("星期六");
}else {
System.out.println("星期天");
}
1.创建键盘录入Scanner类的对象
//Scanner sc = new Scanner(System.in);
2.获取键盘录入的代表星期数的整数数字,保存int变量week中
//System.out.println("请输入代表星期数的整数数字(1到7之间):");
//int week = sc.nextInt();
3.因为week中的数字有7+1种情况,使用if语句第三种格式对week中数字进行判断,并输出对应的星期数
//if (week == 1) {
// System.out.println("星期一");
//} else if (week == 2) {
// System.out.println("星期二");
//} else if (week == 3) {
// System.out.println("星期三");
//} else if (week == 4) {
// System.out.println("星期四");
//} else if (week == 5) {
// System.out.println("星期五");
//} else if (week == 6) {
// System.out.println("星期六");
//} else if (week == 7) {
// System.out.println("星期日");
//} else /*if (week < 1 || week > 7)*/ {//隐含条件: week<1 || week>7
// System.out.println("您输入的星期数不存在,火星来的吧,哥屋恩...");
//}
//System.out.println("game...over...");
}
}
- for循环语句介绍
1.for循环格式:
for (初始化表达式1;布尔表达式2;步进表达式4) {
循环体3;
}
其它语句;
2.执行流程:
1,2(循环条件:true),3,4 --> 2(循环条件:true),3,4 -->
... --> 直到2(循环条件:false)为false时,结束for循环,执行后面的其它语句
- for循环的练习
public class Demo08ShuiXianHua {
public static void main(String[] args) {
//需求:
//在控制台输出所有的“水仙花数”
//
//解释:什么是水仙花数?
//水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数
//例如 153 3*3*3 + 5*5*5 + 1*1*1 = 27 + 125 + 1 = 153
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 he = ge*ge*ge+shi*shi*shi+bai*bai*bai;
if (he == num) {
count++ ;
System.out.println("水仙花数有 :" + num);
}
}
System.out.println("水仙花数一共有 " +count + "个");
}
}
- while循环语句
1.while循环格式:
初始化表达式1;
while(布尔表达式2){
循环体3;
步进表达式4;
}
其它语句;
2.执行流程:
1,2(循环条件:true),3,4-->2(循环条件:true),3,4-->
... -->直到布尔表达式2(循环条件: false)的结果为false,
结束while循环,执行后面的其它语句
- 练习
需求:
世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
折纸(折叠后的厚度是原有厚度的2倍,而不是平方的关系):
public class Demo07ZhuMuLangMF {
public static void main(String[] args) {
int zf = 8844430 ;
double paper = 0.1 ;
int count = 0 ;
while (paper < zf){
paper*= 2 ;
count++;
}
System.out.println(count);
}
}
- do-while循环语句介绍
1.do-while循环格式:
初始化表达式1;
do {
循环体3;
步进表达式4;
} while (布尔表达式2);
其它语句;
2.执行流程:
1,3,4 --> 2(循环条件:true),3,4 --> 2(循环条件:true),3,4 -->
直到布尔表达式2(循环条件:false)的结果为false,结束do-while循环,执行后面的其它语句
- 三个循环语句之间的区别
在知道循环次数的时候使用for循环,在不知道循环次数的时候使用while循环和do-while循环
do-while循环至少执行一次