Java 精炼解读数据结构逻辑控制

 更新时间:2022年03月15日 15:06:41   作者:K稳重  
在程序开发的过程之中一共会存在有三种程序逻辑:顺序结构、分支结构、循环结构,对于之前所编写的代码大部分都是顺序结构的定义,即:所有的程序将按照定义的代码顺序依次执行

一、顺序结构

程序的执行和代码的执行顺序有关,如果调整代码的书写顺序, 则执行顺序也发生变化

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

二、分支结构

基本语法形式1:

if(布尔表达式){    

//条件满足时执行代码 }

基本语法形式2

if(布尔表达式){    

//条件满足时执行代码

}else{    

//条件不满足时执行代码

基本语法形式3 多分支的情况

if(布尔表达式){    

//条件满足时执行代码

}else if(布尔表达式){    

//条件满足时执行代码

}else{    

//条件都不满足时执行代码

}

举例:代码如下

public static void main(String[] args) {
        int n = 10;
        //if里面只能是布尔表达式
        if(n % 2 == 0) {
            System.out.println("偶数");
        }else{
            System.out.println("奇数");
        }
 
    }
}

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

读入字符串 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

读入字符串,如果字符串存在空格的情况下,遇到空格结束 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

如果你要读取字符串和整数,要先读取字符串再读取整数

 如果要简单使用输入函数,可以用。项目当中,慎重!!!!!!

判断是不是闰年:

public class TestDemo {
 
  方法1: public static void main1(String[] args) {
        int year = 2000;
        if (year % 100 == 0) {
            if (year % 400 == 0) {
                System.out.println("是闰年");
            } else {
                System.out.println("不是闰年");
            }
        } else {
            if (year % 4 == 0) {
                System.out.println("是闰年");
            } else {
                System.out.println("不是闰年");
            }
        }
    }
 
  方法2:  public static void main(String[] args) {
        int year = 2000;
        if(year % 100!= 0 && year % 4== 0 ||year % 400 == 0){
            System.out.println("是闰年");
        }else{
            System.out.println("不是闰年");
        }
 
 
    }
}

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

悬垂 else 问题 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

switch 语句 

基本语法

switch(整数|枚举|字符|字符串){

case 内容1 : {

内容满足时执行语句;

[break;]

}

case 内容2 : {

内容满足时执行语句;

[break;]

} ...

default:{ 内容都不满足时执行语句;

[break;]

}

}

举例:

    public static void main(String[] args) {
        //long double float boolean不是不能做switch语句里面的参数的
        int a = 10;
        switch (a){//小括号里面是一个表达式,必须是一个简单的表达式,不能像c语言一样,比如说a>=10 && a<=20
            case 1:
                System.out.println("1");
                break;
            case 2:
                System.out.println("2");
            default:
                System.out.println("参数不匹配");
                break;
        }
    }
}

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

String类型可以作为Java中switch语句的参数 

根据 switch 中值的不同, 会执行对应的 case 语句. 遇到 break 就会结束该 case 语句

如果 switch 中的值没有匹配的 case, 就会执行 default 中的语句.

我们建议一个 switch 语句最好都要带上 default

我们发现, 不写 break 的时候, case 语句会依次向下执行, 从而失去了多分支的效果

注意事项1

break 不要遗漏, 否则会失去 "多分支选择" 的效果

注意事项2

switch 中的值只能是 整数|枚举|字符|字符串

注意事项3 switch 不能表达复杂的条件

// 例如: 如果 num 的值在 10 到 20 之间, 就打印 hehe

// 这样的代码使用 if 很容易表达, 但是使用 switch 就无法表示.

if (num > 10 && num < 20) {

System.out.println("hehe");

}

三、 循环结构

3.1 while 循环 

基本语法格式:

while(布尔表达式){

语句块;

}

循环条件为 true, 则执行循环语句; 否则结束循环 

举例:

求1到10的和   
public static void main(String[] args) {
       int i = 1;
       int sum = 0;
       while(i <=10) {
           sum += i;
           i++;
       }
        System.out.println(sum);
    }
}
 
求n的阶乘
 
    public static void main(String[] args) {
        int j = 3;
        int ret = 0;
            int sum = 1;
            int i = 1;
                while(i<=j) {
 
                    sum *=i;
                    i++;
                }
        System.out.println(sum);
 
        }

注意事项:

1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }

2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.

3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行 

3.2 break

 break 的功能是让循环提前结束 

代码示例:找到 100 - 200 中第一个 3 的倍数 

public static void main(String[] args) {
        int num = 100;
        while (num <= 200) {
            if (num % 3 == 0) {
                System.out.println("找到了 3 的倍数, 为:" + num);
                break;
            }
            num++;
        }

//执行结果
//找到了 3 的倍数, 为:102

执行到 break 就会让循环结束.

3.3 continue 

 continue 的功能是跳过这次循环, 立即进入下次循环

举例: 

求1到10之间三倍数
 
public static void main(String[] args) {
        int i = 1;
        while(i<=10) {
            if(i % 3 !=0 ){
                i++;
                continue;
            }
            System.out.println(i);
                  i++;
        }

执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句 

总结:break结束所有循环,continue结束本趟循环

 break和continue都必须在循环里,【特殊:break可以在switch语句当中】

3.4 for 循环 

基本语法:

for(布尔表达式1;布尔表达式2;布尔表达式3){

语句块;

}

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS-WqvuKAjQ==,size_20,color_FFFFFF,t_70,g_se,x_16

表达式1: 用于初始化循环变量.

表达式2: 循环条件

表达式3: 更新循环变量

举例:

求1到100之间的和 
public static void main(String[] args) {
       int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        }

注意事项 (和while循环类似)

1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }

2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.

3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行. 

3.5 do while 循环(选学) 

基本语法 do{

循环语句;

}while(循环条件);

先执行循环语句, 再判定循环条件. 

举例:

打印1-10
public static void main(String[] args) {
    int num = 1;
    do {
        System.out.println(num);
        num++;
    } while (num <= 10);
}

注意事项:

1. do while 循环最后的分号不要忘记

2. 一般 do while 很少用到, 更推荐使用 for 和 while.

总结:

今天还是蛮累的,加入了计划之星第三季,要更加的忙起来了,后面我会多多刷题多多写博客。

加油!!!!!!

到此这篇关于Java 精炼解读数据结构逻辑控制的文章就介绍到这了,更多相关Java 逻辑控制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring框架接入单机Redis两种实现方式解析

    Spring框架接入单机Redis两种实现方式解析

    这篇文章主要介绍了Spring框架接入单机Redis两种实现方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 浅析git server“丢失”commit问题

    浅析git server“丢失”commit问题

    这篇文章主要介绍了git server“丢失”commit问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • ElasticSearch的完整安装教程

    ElasticSearch的完整安装教程

    这篇文章主要给大家分享介绍了ElasticSearch的完整安装教程,文中通过示例代码介绍的非常详细,对大家学习或者使用ElasticSearch具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • MyBatis在注解上使用动态SQL方式(@select使用if)

    MyBatis在注解上使用动态SQL方式(@select使用if)

    这篇文章主要介绍了MyBatis在注解上使用动态SQL方式(@select使用if),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Java异常体系非正常停止和分类

    Java异常体系非正常停止和分类

    这篇文章主要介绍了Java异常体系非正常停止和分类,指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止更多相关内容需要的朋友可以参考一下
    2022-06-06
  • SpringMVC拦截器快速掌握上篇

    SpringMVC拦截器快速掌握上篇

    拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行。本文将详细讲讲SpringMVC中拦截器的概念及入门案例,感兴趣的可以尝试一下
    2022-08-08
  • Spring源码解析之推断构造方法

    Spring源码解析之推断构造方法

    今天给大家带来的是关于Java的相关知识,文章围绕着Spring推断构造方法展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • JDBC三层架构深入刨析

    JDBC三层架构深入刨析

    三层架构是一种软件设计架构,是一种组织代码的手段和方法,三层架构的优点是扩展性好,复用性高;缺点是步骤多,比较繁琐;代码多,效率降低
    2022-12-12
  • Spring Cloud Feign组件实例解析

    Spring Cloud Feign组件实例解析

    这篇文章主要介绍了Spring Cloud Feign组件实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java 超详细讲解Spring MVC异常处理机制

    Java 超详细讲解Spring MVC异常处理机制

    Spring MVC中提供了一个通用的异常处理机制,它提供了一个成熟、简洁并且清晰的异常处理方案。当使用Spring MVC开发Web应用时,利用这套现成的机制进行异常处理也更加自然并且高效
    2022-04-04

最新评论