【一步一步了解Java系列】:探索Java逻辑控制

news2025/1/19 14:15:38

 看到这句话的时候证明:此刻你我都在努力~

                                 加油陌生人~

个人主页:  Gu Gu Study                                                   

专栏:一步一步了解Java

喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹。



如果喜欢能否点个赞支持一下,谢谢啦!

                                                                                                                作者:小闭

目录

一、顺序结构

二、分支结构 

三、switch 语句

四、循环结构 

五、break与continue

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


何为逻辑控制呢?

在 Java 中,逻辑控制主要有以下几种结构:
 
1. 顺序结构:按照代码书写的顺序一行一行执行,如果调整代码的书写顺序,则执行顺序也发生变化;


2. 分支结构:
-  if 语句:包括单分支、双分支和多分支三种形式,用于根据不同的条件执行不同的代码块;
-  switch 语句:根据不同的条件执行不同的 case 语句,遇到 break 会结束该 case 语句,如果没有匹配的 case ,则执行 default 中的语句;


3. 循环结构:
-  while 循环:当条件为真时,执行循环体中的代码,直到条件为假时结束循环;
-  break 语句:用于在循环中提前结束循环;
-  continue 语句:用于跳过本次循环,直接进入下一次循环。

 

一、顺序结构

顺序结构是最简单,也是最直观的一种结构。就是一句一句的执行代码,没有循环语句,也没有if语句。

public class Test {
    public static void main(String[] args) {
        System.out.println("11223344");
        System.out.println("顺序结构");
        
    }
}

运行结果: 


二、分支结构 

语法风格1

if(布尔类型){

//语句

};

代码示例:  

public static void main(String[] args) {
        int sorce=100;
        if(sorce>90){
            System.out.println("父母很开心呢");
        }
    }

只有一句if语句,注意if括号里面的必须是布尔类型的数据。 


语法风格2

if(布尔表达式){

// 语句1

}else{

  // 语句2

}

代码示例:  

public static void main(String[] args) {
    int score=100;
    if(score>90){
        System.out.println("父母很开心呢");
    }else{
        System.out.println("父母会鼓励你得到更高分");
        
    }
}

这里java有Java的代码写法,这里比较建议如上的if else语句写法而不是 像C语言一样,当然这样写也是合法的但是不建议这么写。如下:是C语言的写法。

if(布尔表达式)

{

// 语句1

}

else

{

  // 语句2

}


 语法风格3

if(布尔表达式1){

   // 语句1

}else if(布尔表达式2){

   // 语句2

}else{

   // 语句3

}

代码示例: 

public static void main(String[] args) {
        int score=100;
        if(score>90){
            System.out.println("父母很开心呢");
        }else if(score>80&&score<90){
            System.out.println("父母会鼓励你得到更高分");

        } else  {
            System.out.println("父母希望你能在加把劲");
        }
    }

if 后接分号(;)问题 

int x = 20;
if (x == 10);
{
System.out.println("hehe");
}
// 运行结果
hehe

 

可能有些小伙伴就疑惑了,为什么会打印“呵呵”呢,明明没符合if里的要求。

其实是因为if语句后接了个分号“;”,导致if语句就是一句话,仅仅只是进行判断,无论真假都不会有什么要执行的语句,而后面的打印语句,就是下一条语句,无关if语句。都会进行打印的。


多个if else 语句的匹配

int x = 10;
int y = 10;
if (x == 10)
  if (y == 10)
   System.out.println("aaa");
else
   System.out.println("bbb");

大家觉得这里面的else是与哪个if匹配呢?

废话不多说,这里的else其实是与第二个if匹配的

这是因为这里的if else语句 中if会往向下的比较靠近的else匹配,而else则是往上找靠近的if来进行匹配。


三、switch 语句

语法形式:

switch(表达式){

case 常量值1:{

语句1;

break;

}

case 常量值2:{

语句2;

break;

}

default:{

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

break;

     }  

}

这里需要注意的是,这里的switch语句中的表达式有一些限制:

第一点: 

上面的switch括号里的表达式中只能是这些表达式:

基本类型:byte、char、short、int,注意不能是long类型

引用类型:String常量串、枚举类型

第二点;

switch不能够表达一些复杂的表达式

/ 例如: 如果 num 的值在 10 到 20 之间, 就打印 hehe // 这样的代码使用 if 很容易表达, 但是使用 switch 就无法表示.

if (num > 10 && num < 20) { System.out.println("hehe"); }


四、循环结构 

4.1 while循环

基本语法格式:

while(循环条件){

循环语句;

}

 跟C语言相似,如下我们运用while来打印1-10的数字

nt num = 1;
while (num <= 10) {
System.out.println(num);
num++;
}

 


4.2 for循环

语法形式:

for(表达式①;布尔表达式②;表达式③){

表达式④;

}

如下还是打印1-10的数据但这里要运用for循环:

 public static void main(String[] args) {
        for (int i = 1; i <=10 ; i++) {
            System.out.print(i+" ");
        }


    }


4.3 do while循环

语法形式:

do{

循环语句;

}while(循环条件);

在这个语句里特点就是至少进行一次循环,因为这个语句第一次进循环是不需要进行判断的,所以这个语句是可以至少是可以进入一次循环的,如下代码示例: 

public static void main(String[] args) {
        int a=0;
        do{

            System.out.println("循环条件为大于0");


        }while(a>0);
    }

可以看到这里我们初始化a=0;但是他还是可以进一次循环打印出了结果。


五、break与continue
break 的功能是让循环提前结束.

如下:代码我们设置小于10就进入循环,但是设置break后定格在i==5,break提前结束了循环。

public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {

            System.out.println("现在是第"+i+"次循环");
            if(i==5){
                break;
            }

        }
    }


 

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

如下:找3的倍数,就利用了continue。

int num = 100;
while (num <= 200) {
if (num % 3 != 0) {
num++; // 这里的 ++ 不要忘记! 否则会死循环.
continue;
}
System.out.println("找到了 3 的倍数, 为:" + num);
num++;
}


那今天的内容就结束了。 喜欢的话点个赞吧。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1682272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【面试干货】一个数组的倒序

【面试干货】一个数组的倒序 1、实现思想2、代码实现 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 1、实现思想 创建一个新的数组&#xff0c;然后将原数组的元素按相反的顺序复制到新数组中。 2、代码实现 package csdn;public class…

springboot 引用外配置json文件

场景 一些服务需要记录一些持久化的信息&#xff08;没有数据库&#xff0c;redis&#xff0c;elasticsearch 可用&#xff09; 我们就项目启动过程创建一个json 文件去记录工作内容的进程&#xff08;json 可视化与改动非常方便&#xff09; 实现效果 代码 application.yml…

【Unity Shader入门精要 第7章】基础纹理(三)

1. 渐变纹理 另外一种对于纹理的使用方式是通过渐变纹理为物体提供漫反射光照效果。 顾名思义&#xff0c;渐变纹理本身就是一张颜色渐变&#xff08;可以是连续渐变&#xff0c;也可能是突变&#xff09;的图片&#xff0c;这个渐变的过程模拟的就是光源从不同的角度照射物体…

Git—常用命令

官方 Git - Book (git-scm.com) 常用命令 命令作用git config --global user.name 用户名设置用户作者git config --global user.email 邮箱设置用户邮箱 git init初始化本地仓库git status查看本地仓库状态 git add 文件名 添加到暂存区git commit -m "提交日志…

【K8s】专题四:Kubernetes 安装方法之 Sealos

以下内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01;如果对您有帮助&#xff0c;烦请点赞、关注、转发&#xff01;欢迎扫码关注个人公众号&#xff01; 目录 一、Sealos 简介 二、Sealos 下载、安装 三、Sealos 部署 Kubernetes 集群 四、Sealos 常…

vue2人力资源项目9权限管理

页面搭建 <template><div class"container"><div class"app-container"><el-button size"mini" type"primary">添加权限</el-button><el-table-column label"名称" /><el-table-co…

反序列化漏洞【1】

1.不安全的反序列化漏洞介绍 序列化&#xff1a;将对象转换成字符串&#xff0c;目的是方便传输&#xff0c;关键词serialize a代表数组&#xff0c;数组里有三个元素&#xff0c;第一个元素下标为0&#xff0c;长度为7&#xff0c;内容为porsche&#xff1b;第二个元素下标为1…

rk3399 shell 测试串口 sttf

问题&#xff1a; 使用 ubunut shell 来对串口进行测试。 板卡上使用的是 USB 转串口&#xff0c; 使用了一片ch340 原理图如下&#xff1a; 再 ubuntu shell 的测试命令。 这里首先要 insmod 一下 ch340 的驱动&#xff0c;默认会有 /usr/sbin/ch34x.ko&#xff0c; 如果没…

创新指南 | 企业AI战略实施方案探讨(下):如何基于AI重构业务流程并落地实施

人工智能&#xff08;AI&#xff09;的浪潮已经席卷全球&#xff0c;成为推动现代企业发展的强大动力。AI技术不仅提升了企业的运营效率&#xff0c;还催生了新的商业模式和市场机会。本文将深入探讨AI的革新性应用案例&#xff0c;并提供一套企业落地AI的具体实施方案&#xf…

springboot3.0+继续使用springboot2.0配置会显示 `无法自动装配,找不到对应的Bean`解决方法

在 Spring Boot 3.0 中&#xff0c;Spring 团队对自动配置机制进行了重大变更&#xff0c;特别是 spring.factories 文件。spring.factories 文件已被 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件所取代。在springboot3.0继续使用…

SQL使用Groupby分组后,选择每个分组某个值最大的那一行

思路是&#xff1a; 先定位分组后某个值最大的值是多少根据值去全表匹配&#xff0c;得到对应的行 比如有个表&#xff1a; SELECT * FROM my_table按照sku_id分组后&#xff0c;选择record_date最大的那一行的全部值&#xff0c;先分组&#xff1a; SELECT sku_id,max(rec…

四川易点慧电商抖音小店运营秘籍引领电商新潮流

在当今数字化浪潮中&#xff0c;抖音小店作为电商领域的一匹黑马&#xff0c;以其独特的社交属性和庞大的用户基础&#xff0c;正迅速崛起为新的销售增长点。四川易点慧电子商务有限公司&#xff0c;作为电商行业的佼佼者&#xff0c;深谙抖音小店运营的精髓&#xff0c;专业助…

Pytest测试实战

Pytest测试框架是动态语言Python专用的测试框架&#xff0c;使用起来非常的简单&#xff0c;这主要得易于它的设计&#xff0c;Pytest测试框架具备强大的功能&#xff0c;丰富的第三方插件&#xff0c;以及可扩展性好&#xff0c;可以很好的和unittest测试框架能够结合起来在项…

手机如何下载短视频到本地:成都鼎茂宏升文化传媒公

手机如何下载短视频到本地 ​随着移动互联网的迅猛发展&#xff0c;短视频已经成为人们生活中不可或缺的一部分。从娱乐、学习到社交&#xff0c;短视频以其短小精悍、内容丰富的特点&#xff0c;吸引了大量用户的关注。然而&#xff0c;有时我们可能希望将喜欢的短视频保存到…

计算机网络-DHCPv6基础

前面我们学习了IPv6地址可以通过手动配置、无状态自动配置、DHCPv6配置&#xff0c;这里简单学习下DHCPv6的知识点。 一、DHCPv6概述 DHCPv6 (Dynamic Host Configuration Protocol for IPv6) 是一种网络协议&#xff0c;设计用于IPv6网络环境中自动为网络设备分配必要的配置信…

LiveGBS流媒体平台GB/T28181用户手册-服务器概览:通道信息、负载信息、CPU使用、存储使用、带宽使用(Mbps)、内存使用

LiveGBS用户手册-服务器概览&#xff1a;通道信息、负载信息、CPU使用、存储使用、带宽使用&#xff08;Mbps&#xff09;、内存使用 1、服务器概览1.1、通道信息1.2、负载信息1.2.1、信息说明1.2.2、会话列表 1.3、CPU使用1.4、存储使用1.5、带宽使用&#xff08;Mbps&#xf…

理解 Python 中的 `super()` 与 `__init__()` 方法

在 Python 的面向对象编程中&#xff0c;super() 函数和 __init__() 方法是两个非常重要的概念。它们在类的继承和初始化过程中扮演着关键的角色。本文将深入探讨这两个概念的工作原理&#xff0c;并通过示例代码来展示它们的使用。 基本原理 __init__() 方法 __init__() 是…

数据结构-栈(带图)

目录 栈的概念 画图理解栈 栈的实现 fun.h fun.c main.c 栈的概念 栈&#xff08;Stack&#xff09;是一种基本的数据结构&#xff0c;其特点是只允许在同一端进行插入和删除操作&#xff0c;这一端被称为栈顶。遵循后进先出&#xff08;Last In, First Out, LIFO&#…

通俗易懂的策略模式讲解

什么是策略模式&#xff1f; 策略模式是一种设计模式&#xff0c;它允许你定义一系列的算法&#xff08;策略&#xff09;&#xff0c;并将每个算法封装成一个对象。这样&#xff0c;你可以轻松地切换不同的算法&#xff0c;而不需要改变原始代码。 一个简单的例子 假设你是…

OpenHarmony标准设备应用开发(二)——布局、动画与音乐

本章是 OpenHarmony 标准设备应用开发的第二篇文章。我们通过知识体系新开发的几个基于 OpenHarmony3.1 Beta 标准系统的样例&#xff1a;分布式音乐播放、传炸弹、购物车等样例&#xff0c;分别介绍下音乐播放、显示动画、动画转场&#xff08;页面间转场&#xff09;三个进阶…