java从入门到入坟之流程控制语句大全(代码片段)

想做躺在b站的男人 想做躺在b站的男人     2023-03-07     482

关键词:

目录

1,顺序结构(最基本的结构)

2,选择结构:

1):if单选择结构:

2):if双选择结构

3):if多选择结构

4)嵌套的if结构

3,循环结构

 1)while循环

2)dowhile循环

3)for循环       

4,break&continue

1)break关键字

2)continue关键字


下面我们来学习一下java中的流程控制语句,此内容作为算法方面的基础,务必认真学习,也希望各位大佬多多支持,进入自己理想的公司!!

java中的流程控制语句语句分为这些:

1,顺序结构(最基本的结构)

顺序结构举例:

2,选择结构:

1):if单选择结构:

    public static void main(String[] args) 
      Scanner scanner=new Scanner(System.in);
        System.out.println("请输入内容");
        String s=scanner.nextLine();
        //equals:判断字符串是否相等
        if (s.equals("Hello"))
            System.out.println(s);
        
        System.out.println("End");
        scanner.close();
    

在键盘上输入Hello运行结果为:

 而输出其他的内容,直接输出End。

2):if双选择结构

为什么要有双选择结构?

基本语法:

if(布尔表达式)
//如果布尔表达式的值为true
else
//如果布尔表达式的值为false
public static void main(String[] args) 
      //考试分数大于60就是及格,小雨60分就不及格。
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score =scanner.nextInt();
        if(score>60)
            System.out.println("及格");
        else
            System.out.println("不及格");
        
        scanner.close();
    

 如图分析,及格的话流程走语句1,不及格的话走语句2

3):if多选择结构

基本语法

if(布尔表达式 1) 
//如果布尔表达式 1的值为true执行代码 
else if(布尔表达式 2)
 //如果布尔表达式 2的值为true执行代码 
else if(布尔表达式 3)
 //如果布尔表达式 3的值为true执行代码 
else  
//如果以上布尔表达式都不为true执行代码 

注意事项

多选择结构需要注意下面几点:
(1)if 语句后面最多有 1 个 else ,else 语句在所有的 else if 语句之后。

(2)if 语句后面可以有很多个 else if,但它们必须在 else 语句之前。

(3)一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。 
代码演示:

   public static void main(String[] args) 
     //考试分数大于60就是及格,小于60就是不及格
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入成绩:");
    int score =scanner.nextInt();
    if(score==100)
        System.out.println("恭喜获得满分");
    else if(score<100&&score>=90)
        System.out.println("A级");
    else if(score<90&&score>=80)
        System.out.println("B级");
    else if(score<80&&score>=70)
        System.out.println("C级");
    else if(score<70&&score>=60)
        System.out.println("D级");
    else if(score<60&&score>=0)
        System.out.println("不及格");
    else if(score>100)
        System.out.println("成绩不合法");
    

    

优点:利用if多选择结构,可以包含更多的情况,让代码更加严谨。

下面我们来实际感受一下if多选择结构!

 事实证明,我们的代码可以做到我们想做的到的需求。

4)嵌套的if结构

嵌套就是套娃,if语句里再套一个if语句呗!

基本语法

if(布尔表达式 1) 
如果布尔表达式 1的值为true执行代码
 if(布尔表达式 2) 
如果布尔表达式 2的值为true执行代码

 

那么嵌套的if结构又有什么好处呢?

      有时候我们在解决某些问题的时候,需要缩小查找范围,需要有层级条件判断,提高效率

       比如:我们需要寻找一个数,在1-100 之间,我们不知道这个数是多少的情况下,我们最笨的方式就是一个个去对比,看他到底是多少,这会花掉你大量的时间,如果可以利用if 嵌套比较,我们可以节省大量的成本。利用if嵌套可以不断的缩小你所要查找的数的范围!

      如果你有这个思想,你已经很优秀了,因为很多大量的工程师就在寻找能够快速提高,查找和搜索效率的方式。为此提出了一系列的概念,我们生活在大数据时代,我们需要不断的去思考如何提高效率,或许哪一天,你们想出一个算法,能够将分析数据效率提高,或许你就可以在历史的长河中留下一些痕迹了。
而且,所有的流程控制语句都可以互相嵌套,互不影响!这就爽歪歪了!

5)Switch多选择结构

介绍:

多选择结构还有一个实现方式就是switch case语句。

switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

switch(expression) 
case value : //语句 break; //可选
case value : //语句 break; //可选 
//你可以有任意数量的case语句 
default : //可选 //语句 

后面注释可选的都可以不要!

switch 语句中的变量类型可以是:

<1>byte,short,int或者char。

<2>从java SE7开始

<3>switch支持字符串String类型了

<4>同时case 标签(就是后面跟的东西)必须为字符串常量或字面量。

代码演示:

    public static void main(String[] args) 
//case穿透
    char grade ='C';
    switch (grade)
        case'A':
            System.out.println("优秀");
            break;
        case'B':
            System.out.println("良好");
        case'C':
            System.out.println("及格");
        case'D':
            System.out.println("再接再厉");
        case'E':
            System.out.println("挂科");

    

    

我们之前说过,break可以不写,那下面我们看看不写break会输出什么呢?

 如果不写break会发生case穿透! 

因为switch语句是匹配一个具体的值(跟if语句比起来的优点)但是如果不加break,switch语句就会把所匹配的case的后面的语句全部输出,造成case穿透。但是这是不应该的,因此,要在每一个case语句后面加一个break!(if只是一个区间,而switch是一个具体的值)

所有case语句后都加上break之后:

   public static void main(String[] args) 
    char grade ='C';
    switch (grade)
        case'A':
            System.out.println("优秀");
            break;
        case'B':
            System.out.println("良好");
            break;
        case'C':
            System.out.println("及格");
            break;
        case'D':
            System.out.println("再接再厉");
            break;
        case'E':
            System.out.println("挂科");
            break;

    

    

输出结果为:

 因此添加break是非常重要的!

在介绍一下:

从java SE7开始

switch支持字符串String类型了

下面用代码演示一下:

    public static void main(String[] args) 
      String name ="躺平哥";
        //JDK的新特性,表达式结果可以是字符串!!!
        //字符的本质还是数字
        //反编译 java--class(字节码文件)--反编译(IDEA)
switch (name)
    case"小佬":
        System.out.println("小佬");
        break;
    case"躺平哥":
        System.out.println("躺平哥");
       break;
          default:
          System.out.println("弄啥嘞!");


    

输出为:躺平哥

3,循环结构

为什么要使用循环结构?

在上面的选择结构中我们始终没办法让程序一直跑着,我们运行一遍就停止了,他可以用scanner等待阻止,但他还是会停止。这在真实的环境中肯定是不行的!比如说淘宝阿里都是24小时运行,我们需要规定一个程序运行多少次,运行多久。因此我们需要一种结构来搞定这种事情。于是乎,循环结构就诞生了!顺序结构只能执行一次,如果你想让相同的结构执行多次的话那么就应该使用循环结构!!!

 1)while循环

基本语法:

while( 布尔表达式 ) 
 //循环内容 

 只要布尔表达式为 true,循环就会一直执行下去。

在循环刚开始时,会计算一次 “ 布尔表达式 ” 的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次判断是否为真。直到条件不成立,则循环结束

我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。

代码演示

public static void main(String[] args)  
int i = 0;
//i小于100就会一直循环 
while (i<100)
 i++; System.out.println(i); 
 

少部分情况需要循环一直执行,比如服务器的请求响应监听等(死循环,平时应该避免,防止程序崩溃!)

public static void main(String[] args)  
while (true)
 //等待客户端连接
 //定时检查
 //......
  

案例:计算1+2+3+…+100=?

public static void main(String[] args) 
 int i = 0;
 int sum = 0;
 while (i <= 100)  
sum = sum+i; i++; 

System.out.println("Sum= " + sum);
 

等于5050

2)dowhile循环

对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

do  
//代码语句 
while(布尔表达式);

下面我们用 do...while 改造一下上面的案例!

public static void main(String[] args) 
 int i = 0;
 int sum = 0;
 do 
 sum = sum+i;
 i++; while (i <= 100);
 System.out.println("Sum= " + sum); 

执行结果当然是一样的!

While 和 do-While 的区别

while先判断后执行。dowhile是先执行后判断!

Do...while总是保证循环体会被至少执行一次!这是他们的主要差别!!!

3)for循环       

虽然所有循环结构都可以用 while 或者 do...while 表示,但 Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。

for 循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构

for循环的基本语法:

for(1,初始化,2,布尔表达式;3,更新) 
 //4,代码语句 

执行顺序为1,2,4,3(注意上方编号)

如果布尔表达式的值为ture,那么将执行4,代码语句然后再进行迭代(加一或者减一)

如果布尔表达式为false那么将不再执行4代码语句!!

【演示: while 和 for 输出】

public static void main(String[] args) 
 int a = 1; //初始化 
while(a<=100) 
//条件判断 
System.out.println(a); 
//循环体 a+=2; 
//迭代 
System.out.println("while循环结束!");
 for(int i = 1;i<=100;i++)
 //初始化//条件判断 //迭代 
System.out.println(i);//循环体
 
System.out.println("while循环结束!"); 

我们发现, for 循环在知道循环次数的情况下,简化了代码,提高了可读性。我们平时用到的最多的也是我们的for 循环!

【练习 1 :计算 0 到 100 之间的奇数和偶数的和】

public class java1 
    public static void main(String[] args) 
        int i = 0;
        int j = 0;
        for (int i1 = 100; i1 > 0; i1--) 
            if (i1%2==0)
                i += i1;
            else
                j += i1;
            
 
        
        System.out.println("基数和"+j);
        System.out.println("偶数和"+i);

【练习 2 :用 while 或 for 循环输出 1-1000 之间能被 5 整除的数,并且每行输出 3 个】

public static void main(String[] args) 
 for(int j = 1;j<=1000;j++)
 if(j%5==0)
 System.out.print(j+"\\t");
 
if(j%(5*3)==0)
 System.out.println(); 

  

【练习 3 :打印九九乘法表】

public class java1 
    public static void main(String[] args) 
        for (int i = 1 ; i < 10 ;i++) 
            for (int i1 = 1; i1 < i+1; i1++) 
                System.out.print(i+"*"+i1+"="+i*i1+"\\t");
 
 
            
            System.out.println();
 
        

4,break&continue

1)break关键字

作用:

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

【演示:跳出循环】

public class java1 
    public static void main(String[] args) 
 
        for (int i1 = 100; i1 > 0; i1--) 
            if (i1==80)
                break;
            else
                System.out.println(i1);
            
 
        

输出结果为 86 85 84 83 82 81!!

2)continue关键字

continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环,从头开始继续循环!
在 for 循环中, continue 语句使程序立即跳转到更新语句,也就是说更新完继续在从头开始循环!
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句,也就是说从新开始while循环!

public class java1 
    public static void main(String[] args) 
 
        for (int i1 = 0; i1 < 10; i1++) 
            if (i1==5)
                continue;
            else
                System.out.println(i1);
            
 
        

输出结果为 0 1 2 3 4 5 6 7 8 9

两者区别  
break 在任何循环语句的主体部分,均可用 break 控制循环的流程。 break 用于强行退出循环,不执行循环中剩余的语句。(break 语句也在 switch 语句中使用 )
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
 

也就是说break直接说老娘不干了,直接从该循环体跳走!而continue是跳出这一次循环执行下一次循环,可最终还是在循环体的内部,没有跳出循环体!这就告诉我们要敢于跳出条条框框的限制才能突破自己!!break!!!!

代码都是自己敲得,大佬们支持一下么么哒---

鸣谢【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili

springboot2从入门到入坟|基础入门篇:「springboot2从入门到入坟」系列教程介绍(代码片段)

...昀又回来了!嘿嘿😋好久都没更新「SpringBoot2从入门到入坟」这一系列教程了,大家等得着急吗?从今年4月15日起,细细想来已有半载了,时光真如梭啊!昔者,子在川上曰:逝者 查看详情

opencv从入门到入坟(代码片段)

小脑一抽去学了狗都不学的CV,几天热度到现在全是凉水学习视频链接b站openCV1.图像基本操作1.1图片处理cv2.IMREAD_COLOR:彩色图像cv2.IMREAD_GRAYSCALE:灰度图像importcv2#opencv读取的格式的RGBimportmatplotlib.pyplotasplt#matplotlib的格式是RGBimpor... 查看详情

超全面的线段树:从入门到入坟(代码片段)

超全面的线段树:从入门到入坟\(Pre\):其实线段树已经学了很久了,突然线段树这个数据结构比较重要吧,现在想写篇全面的总结,帮助自己复习,同时造福广大\(Oier\)(虽然线段树的思维难度并不高)。本篇立志做一篇最浅显... 查看详情

springboot2从入门到入坟|请求参数处理篇:常用参数注解之@requestparam(代码片段)

大家应该知道吧!就是发送请求时,我们是可以在后面带上请求参数的,就像如下页面中的超链接那样。<!DOCTYPEhtml><htmllang="en"><head><metacharset 查看详情

springboot2从入门到入坟|请求参数处理篇:常用参数注解之@requestparam(代码片段)

大家应该知道这一点吧!就是我们在发送请求时,是可以在后面带上请求参数的,一如以下页面中的超链接那样。<!DOCTYPEhtml><htmllang="en"><head><metacharse 查看详情

springboot2从入门到入坟|配置文件篇:自定义类绑定的配置提示(代码片段)

在本篇文章中,我会为大家隆重介绍一个功能,即自定义类绑定的配置提示。大家应该还记得我们在前面编写了一个JavaBean吧!就是Person类,如下所示。packagecom.meimeixia.boot.bean;importlombok.Data;importlombok.ToString;importorg.springframework 查看详情

springboot2从入门到入坟|配置文件篇:自定义类绑定的配置提示(代码片段)

在本篇文章中,我会为大家隆重介绍一个功能,即自定义类绑定的配置提示。大家应该还记得我们在前面编写了一个JavaBean吧!就是Person类,如下所示。packagecom.meimeixia.boot.bean;importlombok.Data;importlombok.ToString;importorg.springframework 查看详情

我从入门到入坟python后总结的基础教程(代码片段)

...废话不多说,先上教程:《Python教程全套》完全入门版IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰,但是,我们要清楚:淘汰的永远只是那些初级水平... 查看详情

springboot2从入门到入坟|自动配置篇:源码分析之httpencodingautoconfiguration自动配置类(代码片段)

HttpEncodingAutoConfiguration自动配置类的详细分析在web>servlet包下,我们发现还有HttpEncodingAutoConfiguration这么一个自动配置类,如下图所示。接下来,我们不妨就来分析一下HTTP编码的自动配置是否能生效,因为HttpEncodingAutoConfiguration... 查看详情

springboot2从入门到入坟|自动配置篇:源码分析之httpencodingautoconfiguration自动配置类(代码片段)

HttpEncodingAutoConfiguration自动配置类的详细分析在web>servlet包下,我们发现还有HttpEncodingAutoConfiguration这么一个自动配置类,如下图所示。接下来,我们不妨就来分析一下HTTP编码的自动配置是否能生效,因为HttpEncodingAutoConfiguration... 查看详情

springboot2从入门到入坟|基础入门篇:你会看springboot的官方文档吗?(代码片段)

开宗明义:如何学习SpringBoot呢?其实学习任何一门新技术,我们都应该以它的官方文档为准。接下来,我们就来熟悉一下SpringBoot官方文档的整个架构,因为我们未来学习很多技术时,都是要参照官方文档来学习的,这样的话,... 查看详情

springboot2从入门到入坟|基础入门篇:你会看springboot的官方文档吗?(代码片段)

开宗明义:如何学习SpringBoot呢?其实学习任何一门新技术,我们都应该以它的官方文档为准。接下来,我们就来熟悉一下SpringBoot官方文档的整个架构,因为我们未来学习很多技术时,都是要参照官方文档来学习的,这样的话,... 查看详情

springboot2从入门到入坟|自动配置篇:源码分析之cacheautoconfiguration自动配置类(代码片段)

CacheAutoConfiguration自动配置类的详细分析我们不妨点开cache包下的CacheAutoConfiguration自动配置类,来分析一下有关缓存的自动配置是否能生效。其实看到这里,相信大家一定认识到这点了,就是我们未来在实际开发中会经常见到XxxAu... 查看详情

springboot2从入门到入坟|自动配置篇:源码分析之cacheautoconfiguration自动配置类(代码片段)

CacheAutoConfiguration自动配置类的详细分析我们不妨点开cache包下的CacheAutoConfiguration自动配置类,来分析一下有关缓存的自动配置是否能生效。其实看到这里,相信大家一定认识到这点了,就是我们未来在实际开发中会经常见到XxxAu... 查看详情

springboot2从入门到入坟|基础入门篇:springboot的大时代背景(代码片段)

在前一讲中,我为大家介绍SpringBoot时,提出了一些概念,例如微服务、分布式等等,所以,我觉得有必要在本讲给大家说一下SpringBoot现在所处的大时代背景。首先,我先给大家介绍一下微服务。微服务早... 查看详情

springboot2从入门到入坟|自动配置篇:源码分析之aopautoconfiguration自动配置类(代码片段)

写在前面在前面两篇文章中,我们研究完了@EnableAutoConfiguration注解,该注解按照字面意思翻译过来应该就是开启自动配置功能的意思。通过前面的分析,我们也已经知道了,该注解会通过@Import(AutoConfigurationImportSelector.class)注解... 查看详情

springboot2从入门到入坟|自动配置篇:源码分析之aopautoconfiguration自动配置类(代码片段)

写在前面在前面两篇文章中,我们研究完了@EnableAutoConfiguration注解,该注解按照字面意思翻译过来应该就是开启自动配置功能的意思。通过前面的分析,我们也已经知道了,该注解会通过@Import(AutoConfigurationImportSelector.class)注解... 查看详情

python之流程控制(代码片段)

Python之流程控制if语句条件判断语句ifa==b:pass#满足条件再执行ifa==b:passelse:pass#满足条件执行第一种语句,不满足条件则执行第二种语句ifa==b:#条件1pass#语句1elifa>b:#条件2pass#语句2else:pass#语句3如果满足条件1,则执行语句1,语句2... 查看详情