流程控制

流程控制

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++;
        }
    }
相关推荐
柳杉1 小时前
建议收藏 | 2026年AI工具封神榜:从Sora到混元3D,生产力彻底爆发
前端·人工智能·后端
仙俊红1 小时前
spring的IoC(控制反转)面试题
java·后端·spring
小楼v2 小时前
说说常见的限流算法及如何使用Redisson实现多机限流
java·后端·redisson·限流算法
与遨游于天地2 小时前
NIO的三个组件解决三个问题
java·后端·nio
czlczl200209252 小时前
Guava Cache 原理与实战
java·后端·spring
Yuer20253 小时前
什么是 Rust 语境下的“量化算子”——一个工程对象的最小定义
开发语言·后端·rust·edca os·可控ai
短剑重铸之日3 小时前
《7天学会Redis》Day 5 - Redis Cluster集群架构
数据库·redis·后端·缓存·架构·cluster
计算机程序设计小李同学3 小时前
基于SSM框架的动画制作及分享网站设计
java·前端·后端·学习·ssm
+VX:Fegn08954 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Victor3564 小时前
Hibernate(43)Hibernate中的级联删除如何实现?
后端