Java基础学习——流程控制语句1

简介: 当关系表达式的值为true,则执行语句体,否则执行大括号后面的语句;当对一个bollean型进行判断时可以直接在括号内写变量名,而不是使用“==”来进行判断

前言


本文将介绍基础的三类流程控制语句:顺序结构、分支结构和循环结构


顺序结构


顾名思义,该结构内的语句是按顺序执行的,没有特别要注意的知识点


public class Example {
    public static void main(String[] args) {
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
    }
}


分支结构


分支结构内包含两种语句:if语句和switch语句


if语句


第一种if语句的固定格式如下


if(关系表达式){
语句体;
}


当关系表达式的值为true,则执行语句体,否则执行大括号后面的语句;当对一个bollean型进行判断时可以直接在括号内写变量名,而不是使用“==”来进行判断


用IDEA来实现一下


public class Example {
    public static void main(String[] args) {
        int a = 5 , b = 2;
        boolean result = a > b;
        if(result){
            System.out.println("a比b大");
        }
    }
}

b52712f5a3ff48c08e7f9958a3edea70.png

第二种if语句固定格式如下


if(关系表达式){
语句体1;
}
else{
语句体2;
}


与第一种不同,当关系表达式为false时,会执行语句体2


用IDEA来实现一下


public class Example {
    public static void main(String[] args) {
        int a = 2 , b = 5;
        boolean result = a > b;
        if(result){
            System.out.println("a一定比b大");
        }
        else{
            System.out.println("a一定不比b大");
        }
    }
}

e36fbb56694743d6ae99bb45932b7bd8.png


第三种if语句是if语句内再嵌套if语句,较为复杂,其格式如下


if(关系表达式){
语句体1;
}
else if{
语句体2;
}
else{
语句体n
}


同样,用IDEA来实现一下


public class example {
    public static void main(String[] args) {
        int a = 2 , b = 2;
        boolean result = a > b;
        if(result){
            System.out.println("a一定比b大");
        }
        else if(a < b){
            System.out.println("a比b小");
        }
        else{
            System.out.println("a和b一样大");
        }
    }
}

76c40771df134d5fad8a860d018016d7.png


switch语句


switch语句的固定格式如下


switch(表达式){
case 值1 : 语句1 ; break;
case 值2 : 语句2 ; break;
case 值3 : 语句3 ; break;
:
:
case 值n : 语句n ; break;
default : 语句体n+1 ; break;


计算机在执行语句时会按顺序一条条比较case中的值是否符合表达式,直到找到符合的那一条后执行这个case下的语句并退出循环。


public class example {
    public static void main(String[] args) {
       int num = 3;
       switch (num){
           case 1 :
               System.out.println("值为1");break;
           case 2 :
               System.out.println("值为2");break;
           case 3 :
               System.out.println("值为3");break;
           case 4 :
               System.out.println("值为4");break;
           default:
               System.out.println("值为5");break;
       }
    }
}

192b0bc3d5db4c4d88c7402152a8cefb.png


以下是switch语句需要注意的点


1.case后的值一定要不同,否则会出现报错情况


3a6a60b60fba46d285bf046e1b702209.png


2.每个语句后一定要加“break”,否则会出现case穿透的情况,会自动执行下一个语句,直到遇到下一个break或者遇到大括号才不会继续往下执行


d80c3e30fddf47cfae5964d675b944ce.png


3.case后的值只能是字面量,不可以是变量,否则会报错


a88bb4820e374f64b846c0362c84a267.png


4.default可以放在任何一个地方(大括号内)也可以删除,并不会报错,且运行结果与原来的一致(如果满足的条件在case语句内)


ca9939d22f1d4d3fbccfb3751a73b95c.png

ec6aedc055cf447384ea7ccc023f2cec.png


循环结构


循环结构内包含三个语句:for语句、while语句和do while语句


for语句


for语句的固定格式如下


for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}


用IDEA来实现一下


public class example {
    public static void main(String[] args) {
       int i = 1;
       for(i = 1 ; i <=5 ; i++)
           System.out.println(i);
    }
}

3f24026ce6c049e2a7a1ad83d182fd42.jpg


有关for语句最经典的题目就是求和问题,比如求1累加到100的和可以用如下代码实现


public class Example{
    public static void main(String[] args) {
        int i = 1 , sum = 0;
        for(i = 0 ; i <= 100 ; i++)
            sum = sum +i;
        System.out.println("和是:"+sum);
    }
}


这道题就是将1-100内每一个数都输出一遍并累加,还可以优化代码:


sum = sum + i
改为
sum+=i


while语句


while语句就是将初始化语句和条件控制语句提出,其格式如下


初始化语句
while(条件判断语句){
循环体语句;
条件控制语句;
}


当条件判断语句的值为true时才会执行下面大括号内的语句,否则不执行循环体内的语句


上面用for语句打印输出1-5也可以用while语句来实现


public class example {
    public static void main(String[] args) {
       int i = 1;
       while (i <= 5) {
           System.out.println(i);
           i++;
       }
    }
}

84c5f262fd5441d4bdbe65a1dd26ec7a.jpg


do while语句


do while语句和while语句并没有太大的差别,唯一的差别就算do while语句要先自循环一次再判断是否满足条件,所以并不是很常用,其结构如下


初始化语句
do{
循环体语句
条件控制语句
}while(条件判断语句);
public class example {
    public static void main(String[] args) {
       int i = 1;
        do{
           System.out.println(i);
           i++;
        }while (i <= 5);
    }
}

d47eec4ca7fd4d5e8c1a4c4d3f6f5f48.jpg


唯一要注意的就是while后要加分号


小结


在循环结构中,while语句和for语句运行结果相同,但是适用的场景不同。while语句适用于只知道循环结束条件,而不知道循环次数和范围的情况;for语句则适用于知道循环次数或者循环范围的情况

相关文章
|
16天前
|
Java
【Java基础】输入输出流(IO流)
Java基础、输入输出流、IO流、流的概念、输入输出流的类层次结构图、使用 InputStream 和 OutputStream流类、使用 Reader 和 Writer 流类
78 2
|
3天前
|
安全 Java
|
2天前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
6 1
|
3天前
|
消息中间件 负载均衡 Java
学习Java中的反应式编程
学习Java中的反应式编程
|
16天前
|
Java
JAVA高级部分学习小结(2023.11.4)
JAVA高级部分学习小结(2023.11.4)
|
21天前
|
算法 Java 测试技术
滚雪球学Java(54):从零开始学习Java中的Math类,轻松解决数学难题
【6月更文挑战第8天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
23 0
滚雪球学Java(54):从零开始学习Java中的Math类,轻松解决数学难题
|
1天前
|
缓存 NoSQL Java
Redis系列学习文章分享---第四篇(Redis快速入门之Java客户端--商户查询缓存+更新+双写一致+穿透+雪崩+击穿+工具封装)
Redis系列学习文章分享---第四篇(Redis快速入门之Java客户端--商户查询缓存+更新+双写一致+穿透+雪崩+击穿+工具封装)
6 0
|
1天前
|
存储 NoSQL Java
Redis系列学习文章分享---第三篇(Redis快速入门之Java客户端--短信登录+session+验证码+拦截器+登录刷新)
Redis系列学习文章分享---第三篇(Redis快速入门之Java客户端--短信登录+session+验证码+拦截器+登录刷新)
3 0
|
1天前
|
存储 NoSQL Java
Redis系列学习文章分享---第二篇(Redis快速入门之Java客户端--Jedis+连接池+SpringDataRedis+RedisTemplate+RedisSerializer+Hash)
Redis系列学习文章分享---第二篇(Redis快速入门之Java客户端--Jedis+连接池+SpringDataRedis+RedisTemplate+RedisSerializer+Hash)
5 0
|
1天前
|
Java Apache
学习Java中的日志系统设计与优化
学习Java中的日志系统设计与优化