复习:
- 基本类型间的转换
自动转换(小—>大) 强制转换(大–>小) (要转换的类型)
boolean类型不参与转换
byte short char -->int–>long—>float—>double - 运算符
算术 赋值 比较 逻辑 三元 - 判断语句
if(){}
if(){}else
if(){}else if(){}else if(){}......
- 键盘录入
Scanner sc = new Scanner(System.in) ;
目标
- switch语句
- 循环语句
switch语句
也是分支语句中的一个代表,是多重if语句的另外一种表现形式。
switch(表达式){
case 常量值1:
语句;…
break;
case 常量值2:
语句;…
break;
…
default:
语句;…
break;
}
案例:实现简单运算;
import java.util.*;
public class Demo1 {
public static void main(String[] args) {
//Switch 语句
Scanner sc = new Scanner(System.in);
System.out.println("请输入运算符 + - * / %");
String str = sc.next();
System.out.println("请依次输入要计算的整数");
int num1=sc.nextInt();
int num2=sc.nextInt();
switch(str){
case "+":
System.out.println(num1+" + "+num2+" = "+(num1+num2));
break;
case "-":
System.out.println(num1+" - "+num2+" = "+(num1-num2));
case "*":
System.out.println(num1+" * "+num2+" = "+(num1*num2));
break;
case "/":
System.out.println(num1+" / "+num2+" = "+(num1/num2));
break;
case "%":
System.out.println(num1+" % "+num2+" = "+(num1%num2));
break;
default:
System.out.println("输入不合法。");
}
}
}
流程:
计算表达式,根据结果进入到大括号中,与case后的值进行匹配,相同执行对应的语句,执行break语句,结束switch语句;如果不匹配,找第二个case,与其后常量值进行匹配,…依次类推,所有的case后的值与表达式的结果不匹配,执行default。
说明:
- 表达式结果类型:byte short char int String 枚举
- 结束switch语句的标志:break; 或 }
- switch语句可以不写break,如果不写,不再与case后的值进行匹配,看到代码就执行,
直至遇到结束的标志。 - switch中的case包括default是编写代码时是没有顺序之分的
循环语句
某些相同或相似的语句想要重复执行多次,可以使用循环语句来简化结构。
代表:while do-while for
组成:重复多次执行的语句 初始化变量 更改初始化变量语句 循环条件
循环语句:
代表语句1:while循环
初始化变量
while(循环条件){
重复多次执行的语句;
更改初始化变量语句
}
先判断,后执行。次数:0-n
案例:
public class Demo2 {
public static void main(String[] args) {
//循环语句:
// 组成:重复多次的代码,初始化变量,更改初始化变量的语句,循环条件
int a = 1,b=1;
while(a<=20){
System.out.println("------------------------------");
while(b<=20){
System.out.println("第 "+(b)+" 次打印 Hello World! ");
System.out.println("------------------------------");
b++;
}
a++;
}
}
}
代表语句2:do–while循环
初始化变量
do{
重复多次执行的语句 ;
更改初始化变量语句 ;}while(循环条件);
先执行,后判断。次数:1-n
案例:
public class Demo4 {
public static void main(String[] args) {
//do while 循环语句
int n=1;
int sum=0;
do{
if(n % 7 == 0){
sum=sum+n;
System.out.print("--");
}
System.out.println(n);
n++;
}while(n<=50);
System.out.println("1-50之间7的倍数的和为"+sum);
}
}
代表语句3:for 循环
for(初始化变量; 循环条件; 更改初始化变量语句 ){
重复多次执行的语句;
}
先判断,后执行;次数:0-n
for和while的执行流程是一样的。
案例:找出水仙花数
public class Demo5 {
public static void main(String[] args) {
//For循环
for(int num=101; num<1000;num++ ){
int ge = num%10;
int shi = num%100/10;
int bai =num/100;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai == num ){
System.out.println(num + "是水仙花数");
}
}
}
}