流程控制
1、键盘录入(使用utils包下的Scanner类)
java
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
System.out.println(i);
2、分支语句
2.1、分支判断语句(if else)
java
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
if (i > 20) {
System.out.println("i > 20");
} else if (i < 10) {
System.out.println("i < 10");
} else {
System.out.println("10 < i < 20");
}
}
2.2、分支选择语句(switch case)
第一种写法:
java
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
switch (i){
case 1:
System.out.println("i的大小为" + i);
break;
case 2:
System.out.println("i的大小为" + i);
break;
case 3:
System.out.println("3333333");
break;
default:
System.out.println("啥也不是");
break;
}
}
第二种写法:利用case的穿透特性
java
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
switch (i){
case 1:
case 2:
System.out.println("i的大小为" + i);
break;
case 3:
System.out.println("3333333");
break;
default:
System.out.println("啥也不是");
break;
}
}
第三种写法:jdk17以后
java
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String i = sc.next();
String province = switch (i){
case "郑州","洛阳" -> "河南省";
case "武汉" -> {
System.out.println("九省通衢");
yield "湖北省";
}
case "乌鲁木齐" -> "新疆";
default -> "中国的";
};
}
- 表达式的类型:byte,short,int,char
- JDK5之后可以是枚举
- JDK7以后可以是String
3、循环语句
3.1、for循环
java
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
}
3.2、while循环
java
public static void main(String[] args) {
int i = 0;
while(i<10){
System.out.println(i);
i++;
}
}
3.3、do......while
java
public static void main(String[] args) {
int i = 0;
do {
System.out.println(i);
i++;
}while(i<10);
}
3.4、三种循环之间的区别
-
do while循环至少会执行一次循环体
-
控制条件语句所控制的那个变量,在for循环结束后就不能再使用了,但是while循环结束后依然可以使用,所以for循环内存空间利用率更高
3.5、死循环
java
while(true){}
for(;true;){}
for(;;){}
4、跳转控制语句
4.1、break
立即结束循环(就近原则),在分支选择语句中直接结束选择语句
4.2、continue
跳出当前循环,接着执行下一次循环
经典题目:统计水仙花数
java
public static void main(String[] args) {
//打印出所有的 "⽔仙花数"
//所谓 "⽔仙花数"是指⼀个三位数,其各位数字⽴⽅和等于该数本身。
//例如:153是⼀个 "⽔仙花数 ",因为153=1的三次⽅+5的三次⽅+3的三次⽅。
int x = 100;
int a = 0,b = 0,c = 0;
while (x < 1000) {
a = x%10;
b = x / 10 %10;
c = x /100 %10;
if (x == a*a*a + b*b*b + c*c*c){
System.out.println(x);
}
x++;
}
}