文章目录
流程控制语句
1、顺序结构
2、分支结构 (分为两部分:if、switch)
(1)if 语句
note:如果if结构中只有一句代码,这种情况可以省略大括号,但不建议省略
(2)switch 语句
package com.itheima.demo1;
import java.util.Scanner;
//注意文件名要与类名一致
public class HelloWorld {
public static void main(String[] args) {
//注释
Scanner scanner = new Scanner(System.in);
int week = scanner.nextInt();
switch (week){
case 1:
System.out.println("run");
break;
case 2:
System.out.println("swim");
break;
case 3:
System.out.println("rest");
break;
default:
System.out.println("nothing");
}
}
}
(1)default的位置与省略
1.位置:default不一定是写在最下面的,我们可以写在任意位置。只不过习惯会写在最下面。
2.省略:default可以省略,语法不会有问题,但是不建议省略。
(2)case穿透
就是语句体中没有写break导致的。
实际上switch的执行流程:首先还是会拿着小括号中表达式的值跟下面每一个case进行匹配。如果匹配上了,就会执行对应的语句体,如果此时发现了break,那么结束整个switch语句。如果没有发现break,那么程序会继续执行下一个case的语句体,一直遇到break或者右大括号为止。
使用场景:如果多个case的语句体重复了,那么我们考虑利用case穿透去简化代码
package com.itheima.demo1;
import java.util.Scanner;
//注意文件名要与类名一致
public class HelloWorld {
public static void main(String[] args) {
//注释
Scanner scanner = new Scanner(System.in);
int week = scanner.nextInt();
switch (week){
case 1:
System.out.println("run");
//break;
case 2:
System.out.println("swim");
//break;
case 3:
System.out.println("rest");
//break;
default:
System.out.println("nothing");
}
}
}
(3)switch在JDK12后的新特性
package com.itheima.demo1;
//注意文件名要与类名一致
public class HelloWorld {
public static void main(String[] args) {
//注释
int number = 1;
switch(number){
case 1:
System.out.println("一");
break;
case 2:
System.out.println("二");
break;
default:
System.out.println("没有这个数字");
}
}
}
可将上述代码优化为:通过 “->” 和 大括号 可以省略break
package com.itheima.demo1;
//注意文件名要与类名一致
public class HelloWorld {
public static void main(String[] args) {
//注释
int number = 1;
switch(number){
case 1 -> {
System.out.println("一");
}
case 2 -> {
System.out.println("二");
}
default -> {
System.out.println("没有这个数字");
}
}
}
}
如果case结构中只有一条语句还可以简化为:
package com.itheima.demo1;
//注意文件名要与类名一致
public class HelloWorld {
public static void main(String[] args) {
//注释
int number = 1;
switch(number){
case 1 -> System.out.println("一");
case 2 -> System.out.println("二");
default -> System.out.println("没有这个数字");
}
}
}
(4)switch中一个case可以在其后加多种情况
package com.itheima.demo1;
//注意文件名要与类名一致
public class HelloWorld {
public static void main(String[] args) {
//注释
int number = 2;
switch(number){
case 1, 2 -> System.out.println("一");
default -> System.out.println("没有这个数字");
}
}
}
如图所示以上四图输出皆为 “ 一 ”
3、循环结构
1、for循环
note:(1)在for循环大括号中设定的变量 作用域仅在大括号中
2、while循环
3、do…while循环
题目:判断是否是回文数
package com.itheima.demo1;
import java.util.Scanner;
//注意文件名要与类名一致
public class HelloWorld {
public static void main(String[] args) {
//注释
Scanner scanner = new Scanner(System.in);
int num_input = scanner.nextInt();
int temp = num_input;
int num = 0;
int index;
while(num_input != 0){
index = num_input % 10;
num_input = num_input / 10;
num = num*10 + index;
}
if(num == temp) System.out.println(temp+" 是回文数");
else System.out.println(temp + " 不是回文数");
}
}