JavaSE——【逻辑控制】(知识)

目录

前言

一、顺序结构

二、分支结构

三、循环结构

总结


前言

    公元 3050 年,地球的科技已经发展到令人难以想象的地步。这天,艾米莉在自己的房间里启动了最新的虚拟旅行装置,下一秒,她发现小奥奇的博客更新了。立即放弃了虚拟旅行的想法,沉溺在刚更新的博客知识里。噢!原来是新章节逻辑控制开篇了,究竟有多大的魅力呢?我们来看看。


一、顺序结构

    顺序结构比较简单,按照代码书写的顺序一行一行执行

  System.out.println("aaa");System.out.println("bbb");System.out.println("ccc");// 运行结果aaabbbccc

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

  System.out.println("aaa");System.out.println("ccc");System.out.println("bbb");// 运行结果aaacccbbb


二、分支结构

  2.1 if 语句

    2.1.1 语法格式1
  if(布尔表达式){// 语句}

    如果布尔表达式结果为true,执行if中的语句,否则不执行。

    比如:小明,如果这次考试考到90分或以上,给你买一个羽毛球拍。 

  int score = 92;if(score >= 90){System.out.println("羽毛球拍!!!");}
   2.1.2 语法格式2
  if(布尔表达式){// 语句1}else{// 语句2}

      如果布尔表达式结果为true,则执行if中语句,否则执行else中语句。 

    2.1.3 语法格式3 
  if(布尔表达式1){// 语句1}else if(布尔表达式2){// 语句2}else{// 语句3}

       表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3 

  【注意事项】

    2.1.4 代码风格
  // 风格1-----> 推荐int x = 10;if (x == 10) {// 语句1} else {// 语句2}//风格2int x = 10;if (x == 10){// 语句1}else{// 语句2}

      虽然两种方式都是合法的, 但是 Java 中更推荐使用风格1,  放在 if / else 同一行. 代码跟紧凑。 

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

      此处多写了一个分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块

    2.1.6 悬垂 else 问题
  int x = 10;int y = 10;if (x == 10)if (y == 10)System.out.println("aaa");elseSystem.out.println("bbb");

      if / else 语句中可以不加大括号 . 但是也可以写语句(只能写一条语句. 此时 else 是和最接近的 if 匹配. 但是实际开发中我们不建议这么写. 最好加上大括号. 

  2.2 switch 语句

    基本语法
  switch(表达式){case 常量值1:{语句1;[break;]}case 常量值2:{语句2;[break;]}...default:{内容都不满足时执行语句;[break;]}}
    执行流程

      1. 先计算表达式的值

      2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束

      3. 当表达式的值没有与所列项匹配时,执行default

  注意事项

      \bullet 多个case后的常量值不可以重复

      \bullet switch的括号内只能是以下类型的表达式:

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

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

  double num = 1.0;switch(num) {case 1.0:System.out.println("hehe");break;case 2.0:System.out.println("haha");break;}// 编译出错Test.java:4: 错误: 不兼容的类型: 从double转换到int可能会有损失switch(num)  ^ 1 个错误

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

  int day = 1;switch(day) {case 1:System.out.println("星期一");// break;case 2:System.out.println("星期二");break;}// 运行结果星期一星期二

      \bullet switch 不能表达复杂的条件 

  // 例如: 如果 num 的值在 10 到 20 之间, 就打印 hehe// 这样的代码使用 if 很容易表达, 但是使用 switch 就无法表示.if (num > 10 && num < 20) {System.out.println("hehe");}

      \bullet switch 虽然支持嵌套, 但是很丑,一般不推荐~ 


三、循环结构

  3.1 while 循环

  while(循环条件){循环语句;}

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

  注意事项

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

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

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

  int num = 1;while (num <= 10); {System.out.println(num);num++;}// 执行结果[无任何输出, 程序死循环]

      此时 ; 为 while 的语句体(这是一个空语句), 实际的 { } 部分和循环无关. 此时循环条件 num <= 10 恒成立, 导致代码死循环了. 

  3.2 break

      break 的功能是让循环提前结束,执行到 break 就会让循环结束.

  3.3 continue

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

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

  3.4 for 循环

    基本语法
  for(表达式1;布尔表达式2;表达式3){表达式4;}

      \bullet 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次

      \bullet 表达式2: 循环条件,满则循环继续,否则循环结束

      \bullet 表达式3: 循环变量更新方式 

    执行过程

      1 2 3 4 ---> 2 3 4 ---> 2 3 4 ---> 2 3 4 ---> 2 3 4 ---> 2 3 4 --->...---> 2 为false,循环结束。

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

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

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

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

      4. 和while循环一样,结束单趟循环用continue,结束整个循环用break.

  3.5 do while 循环(了解)

    基本语法
  do{循环语句;}while(循环条件);

先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。

奥奇小课堂:“听说 while 后面的分号喜欢捉迷藏,使用时要把它找出来哦” 


四、输入输出

  4.1 输出到控制台

    基本语法
System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出

      \bullet println 输出的内容自带 \n, print 不带 \n

      \bullet printf 的格式化输出方式和 C 语言printf 是基本一致的. 

   代码示例
System.out.println("hello world");
int x = 10;
System.out.printf("x = %d\n", x)

  4.2 从键盘输入

    使用 Scanner 读取字符串/整数/浮点数

  import java.util.Scanner; // 需要导入 util 包Scanner sc = new Scanner(System.in);System.out.println("请输入你的姓名:");String name = sc.nextLine();System.out.println("请输入你的年龄:");int age = sc.nextInt();System.out.println("请输入你的工资:");float salary = sc.nextFloat();System.out.println("你的信息如下:");System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);sc.close(); // 注意, 要记得调用关闭方法// 执行结果请输入你的姓名:张三请输入你的年龄:18请输入你的工资:1000你的信息如下:姓名: 张三年龄:18工资:1000.0

总结

    本篇介绍了逻辑控制的各种语句结构,下一篇我们将其运用在实际问题上面,敬请期待

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Numba 的 CUDA 示例(3/4):流和事件

本教程为 Numba CUDA 示例 第 3 部分。 按照本系列的第 3 部分&#xff0c;了解 Python CUDA 编程中的流和事件 介绍 在本系列的前两部分&#xff08;第 1 部分&#xff0c;第 2 部分&#xff09;中&#xff0c;我们学习了如何使用 GPU 编程执行简单的任务&#xff0c;例如高度…

Windows CMD对MySQL进行基本操作的常用命令

目录 前言1. 数据库操作2. 表操作3. 记录操作4. 备份与恢复数据库 前言 对于基本的命令行以及优化推荐阅读&#xff1a; 数据库中增删改常用语法语句&#xff08;全&#xff09;Mysql优化高级篇&#xff08;全&#xff09;命令行登录Mysql的详细讲解 启动MySQL服务&#xff1…

Python版《消消乐》,附源码

曾经风靡一时的消消乐&#xff0c;至今坐在地铁上都可以看到很多人依然在玩&#xff0c;想当年我也是大军中的一员&#xff0c;那家伙&#xff0c;吃饭都在玩&#xff0c;进入到高级的那种胜利感还是很爽的&#xff0c;连续消&#xff0c;无限消&#xff0c;哈哈&#xff0c;现…

代码随想录——二叉搜索树的最近公共祖先(Leetcode235)

题目链接 普通递归法 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode…

ChatGPT成知名度最高生成式AI产品,使用频率却不高

5月29日&#xff0c;牛津大学、路透社新闻研究所联合发布了一份生成式AI&#xff08;AIGC&#xff09;调查报告。 在今年3月28日—4月30日对美国、英国、法国、日本、丹麦和阿根廷的大约12,217人进行了调查&#xff0c;深度调研他们对生成式AI产品的应用情况。 结果显示&…

linux部署运维3——centos7下导入导出mysql数据库的sql文件以及查询数据量最大的表信息

在实际项目开发或者项目运维过程中&#xff0c;数据库的导入导出操作比较频繁&#xff0c;如果可以借助第三方工具那当然算喜事一桩&#xff1b;但是如果不允许外部访问&#xff0c;那么就只能使用数据库自带的命令&#xff0c;也是相当方便的。 一.导入sql文件 1.在linux命令…

基于单片机的船舱温度临界报警系统

摘 要 : 针对传统的船舱温度临界报警系统&#xff0c;由于温度监控不到位导致报警不及时的问题&#xff0c;提出一个基于单片机的船舱温度临界报警系统设计。该设计将单片机作为核心控制硬件&#xff0c;控制系统整体电路。同时设计数据采集模块&#xff0c;利用温度测量仪测试…

12 - 常用类

那就别跟他们比&#xff0c;先跟自己比&#xff0c;争取今天比昨天强一些&#xff0c;明天比今天强一些。 1.包装类 针对八种基本数据类型封装的相应的引用类型。 有了类的特点&#xff0c;就可以调用类中的方法。&#xff08;为什么要封装&#xff09; 基本数据类型包装类b…

[笔记] 记录docker-compose使用和Harbor的部署过程

容器技术 第三章 记录docker-compose使用和Harbor的部署过程 容器技术记录docker-compose使用和Harbor的部署过程Harborhttps方式部署&#xff1a;测试环境部署使用自签名SSL证书https方式部署&#xff1a;正式环境部署使用企业颁发的SSL证书给Docker守护进程添加Harbor的SSL证…

AI视频教程下载:给初学者的ChatGPT提示词技巧

你是否厌倦了花费数小时在可以通过强大的语言模型自动化的琐碎任务上&#xff1f;你是否准备好利用 ChatGPT——世界上最先进的语言模型——并将你的生产力提升到下一个水平&#xff1f; ChatGPT 是语言处理领域的游戏规则改变者&#xff0c;它能够理解并响应自然语言&#xf…

“Apache Kylin 实战指南:从安装到高级优化的全面教程

Apache Kylin是一个开源的分布式分析引擎,它提供了在Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力,支持超大规模数据的亚秒级查询。以下是Kylin的入门教程,帮助您快速上手并使用这个强大的工具。 1. 安装Kylin Apache Kylin的安装是一个关键步骤,它要求您具备一…

C++ | Leetcode C++题解之第132题分割回文串II

题目&#xff1a; 题解&#xff1a; class Solution { public:int minCut(string s) {int n s.size();vector<vector<int>> g(n, vector<int>(n, true));for (int i n - 1; i > 0; --i) {for (int j i 1; j < n; j) {g[i][j] (s[i] s[j]) &…

Windows下使用Airsim+QGC进行PX4硬件在环HITL(三)

Windows下使用AirsimQGC进行PX4硬件在环HITL This tutorial will guide you through the installation of Airsim and QGC on Windows, so that the hardware-in-the-loop experiment can be conducted. Hardware-in-the-Loop (HITL or HIL) is a simulation mode in which nor…

三维模型轻量化工具:手工模型、BIM、倾斜摄影等皆可用!

老子云是全球领先的数字孪生引擎技术及服务提供商&#xff0c;它专注于让一切3D模型在全网多端轻量化处理与展示&#xff0c;为行业数字化转型升级与数字孪生应用提供成套的3D可视化技术、产品与服务。 老子云是全球领先的数字孪生引擎技术及服务提供商&#xff0c;它专注于让…

C# 中文字符串转GBK字节的示例

一、编写思路 在 C# 中&#xff0c;将中文字符串转换为 GBK 编码的字节数组需要使用 Encoding 类。然而&#xff0c;Encoding 类虽然默认并不直接支持 GBK 编码&#xff0c;但是可以通过以下方式来实现这一转换&#xff1a; 1.使用系统已安装的编码提供者&#xff08;如果系统…

Unity 之 代码修改材质球贴图

Unity 之 代码修改材质球贴图 代码修改Shader&#xff1a;ShaderGraph&#xff1a;材质球包含属性 代码修改 meshRenderer.material.SetTexture("_Emission", texture);Shader&#xff1a; ShaderGraph&#xff1a; 材质球包含属性 materials[k].HasProperty("…

S4 BP 维护

前台输入Tcode:BP 问候填写金税开票信息使用的开户行名称,注释填写金税开票信息使用的开户行代码 屏幕下滑按需填写其他数据,如:街道2,街道3,街道/门牌号,街道4,街道5,区域,邮编、城市、国家、地区、语言,电话(发票地址里的电话(必须是客户开票资料里提供的电话,会…

团队项目开发使用git工作流(IDEA)【精细】

目录 开发项目总体使用git流程 图解流程 1.创建项目仓库[组长完成] 2. 创建项目&#xff0c;并进行绑定远程仓库【组长完成】 3.将项目与远程仓库&#xff08;gitee&#xff09;进行绑定 3.1 创建本地的git仓库 3.2 将项目添加到缓存区 3.3 将项目提交到本地仓库&#…

读书笔记-Java并发编程的艺术-第2章 Java并发机制的底层实现原理

文章目录 2.1 volatile的应用2.1.1 volatile的定义与实现原理2.1.2 volatile的使用优化 2.2 synchronized的实现原理与应用2.2.1 Java对象头2.2.2 锁的升级与对比2.2.2.1 偏向锁2.2.2.2 轻量级锁2.2.2.3 锁的优缺点对比 2.3 原子操作的实现原理2.3.1 术语定义2.3.2 处理器如何实…

Git常用命令1

1、设置用户签名 ①基本语法&#xff1a; git config --global user.name 用户名 git config --global user.email 邮箱 ②实际操作 ③查询是否设置成功 cat ~/.gitconfig 注&#xff1a;签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交…