04-程序流程控制(中卷)
0. 作业练习题
1:基本小题目
int a = 10;
int b = 10;
int c = 10;
a = b++;
c = --a;
b = ++a;
a = c--;
请分别计算出a,b,c的值
2:比较复杂的题目
int a = 4;
int b = (a++)+(++a)+(a*10);
3.键盘录入两个数据,并对这两个数据求和,输出其结果
4.键盘录入两个数据,获取这两个数据中的最大值
5.键盘录入三个数据,获取这三个数据中的最大值
6.键盘录入两个数据,比较这两个数据是否相等
public static void main(String[] args) {
//录入三个数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字");
int num1 = sc.nextInt();
System.out.println("请输入第二个数字");
int num2 = sc.nextInt();
System.out.println("请输入第三个数字");
int num3 = sc.nextInt();
int temp= num1>num2?num1:num2;
int max = temp>num3?temp:num3;
System.out.println("max:"+max);
}
键盘录入两个数据,比较这两个数据是否相等
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int num1 = sc.nextInt();
System.out.println("请输入第二个数");
int num2 = sc.nextInt();
// 比较两个数是否相等
boolean res = (num1 == num2);
System.out.println("比较结果:" + res);
}
- 选择结构-switch语句
1.1.定义格式
switch语句格式:
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
1.2.switch格式解释
格式的解释:
switch:表示这是switch选择结构
表达式:这个地方的取值是有限定的
byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是字符串
case:后面跟的是要和表达式进行比较的值
语句体:要执行的代码
break:表示中断,结束的意思,可以控制switch语句的结束。
default:当所有的值都和表达式不匹配的时候,就执行default控制的语句。其实它就相当于if语句的else。
1.3.switch基本使用
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个年龄的数据(1-90)");
int week = sc.nextInt();
switch(week)
{
case 1:
System.out.println("年龄是:"+week);
break;
case 2:
System.out.println("年龄是:"+week);
break;
case 3:
System.out.println("年龄是:"+week);
break;
default:
System.out.println("您输入的星期数值非法");
break;
}
}
1.4.switch的注意事项
1)case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
2)default可以省略吗?
可以省略。一般不建议
3)break可以省略吗?
break 可以省略,但是不要在前面的case中省略,否则会造成case贯穿问题,可以在default中省略
4)default的位置一定要在最后吗?
可以出现在switch语句任意位置。
5)switch语句的结束条件
遇到break
执行到程序的末尾
问题1:只能是常量,不能是变量
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个年龄");
int age = sc.nextInt();
int num = 1;
switch (age) {
case num:
System.out.println("年龄是:" + age);
break;
case 2:
System.out.println("年龄是:" + age);
break;
default:
System.out.println("年龄数据太大");
break;
}
}
问题2:多个case后面的值不能出现相同的
问题3:default可以省略吗?
问题4:break可以省略吗?
问题5:default的位置一定要在最后吗?
可以出现在switch语句任意位置。
问题6:switch语句结束条件
遇到break
执行到程序的末尾
1.5.switch的练习题
1)看程序猜结果
int x = 2;
int y = 3;
switch(x){
default:
y++;
break;
case 3:
y++;
case 4:
y++;
}
System.out.println(“y=”+y);
2)模拟做单项选择题,根据你的选择,给出对应的答案。(表达式是字符的情况)
3)键盘录入字符串,根据给定的字符串,来输出你选择的字符串是什么?(表达式是字符串的情况)
4)用switch语句实现键盘录入月份,输出对应的季节
1.7.switch和if的对比
在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断
2. 循环结构
需求:
请在控制台 输出10次:在操场跑步!!!
请在控制台输出 100次: 在操场跑步!!!
请在控制台 10000次: 在操场跑步!!!
2.1.介绍
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
2.2.循环语句的组成
初始化语句:
一条或者多条语句,这些语句完成一些初始化操作。
判断条件语句:
这是一个boolean 表达式,这个表达式能决定是否执行循环体。
循环体语句:
这个部分是循环体语句,也就是我们要多次做的事情。
控制条件语句:
这个部分在一次循环体结束后,下一次循环判断条件执行前执行。通过用于控制循环条件中的变量,使得循环在合适的时候结束。
2.3.循环结构的分类
for 循环
while 循环
do-while 循环
2.4.for循环
2.4.1.基本格式
for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程:
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
图解:
2.4.2.基本使用
2.4.3.for循环的注意事项
判断条件语句的结果是一个boolean类型
循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。
一般来说:有左大括号就没有分号,有分号就没有左大括号
2.4.4.for循环的练习题
请在控制台输出数据1-10
请在控制台输出数据10-1
求出1-10之间数据之和
求出1-100之间偶数和
求出1-100之间奇数和
求5的阶乘
在控制台输出所有的”水仙花数”
统计”水仙花数”共有多少个
2.5.while循环
2.5.1.基本格式
while循环语句格式:
基本格式:
while(判断条件语句) {
循环体语句;
}
扩展格式:
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
图解:
2.5.2.基本使用
2.5.3.while循环练习
1)输出10次HelloWorld案例
2)求出1-100之和
3)C:统计水仙花数有多少个