当前位置: 首页 > news >正文

Java-逻辑控制

目录

一、顺序结构

二、分支结构

        1.if语句

          2.swich语句

三、循环结构

        1.while循环

        2.break

        3.continue

        4.for循环

        5.do while循环

四、输入输出

        1.输出到控制台

        2.从键盘输入


一、顺序结构

        按照代码的书写结构一行一行执行。

        System.out.println("aaa");
        System.out.println("bbb");
        System.out.println("ccc");

      

         调整代码顺序

        System.out.println("bbb");
        System.out.println("ccc");

        System.out.println("aaa");

 

 

二、分支结构

        1.if语句

        if(布尔表达式){

        //语句

        }

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

        int gor=100;if(gor>90) {System.out.println(gor);}

         if(布尔表达式){

                //语句1

          }else{

                //语句2

          }

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

        int a = 92;
        if(a >= 90){
        System.out.println("足够大");
        }else{
        System.out.println("太小");

        

         if(布尔表达式){

                       //语句1

        }else if(布尔表达式){

                        //语句2

        }else{

                        //语句3

        }

        int a = 92;if(a >= 90){System.out.println("优秀");}else if(a>=60){System.out.println("良");}else{System.out.println("不及格");}

      

          2.swich语句

           switch(表达式){
                case 常量值1:{
                                语句1;
                                break;
                                }
                case 常量值2:{
                                语句2;
                                break;
                                }

                ...

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

               }

执行顺序:先计算表达式的值,之后和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束,当表达式的值没有与所列项匹配时,执行default。
 

int day=2;
switch(day) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");break;case 4:System.out.println("星期四");break;case 5:System.out.println("星期五");break;case 6:System.out.println("星期六");break;case 7:System.out.println("星期日");break;default:System.out.println("输入有误");break;
}

         注意:多个case后的常量值不可以重复,switch的括号内只能是以下类型的表达式:基本类型:byte、char、short、int,不能是long类型,引用类型:String常量串、枚举类型。
        break不能遗漏,否则就会失去多分支效果。

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

        }

      switch不能表达复杂条件,其虽可以嵌套但不推荐。

三、循环结构

        1.while循环

        while(循环条件){

                循环语句;

        }

        循环条件为true时, 则执行循环语句, 否则结束循环。
示例 打印1-20的数字

        int num = 1;
        while (num <= 20) {
        System.out.println(num);
        num++;
        }

         注意:当while的循环语句只有一条时,while 下面的语句可以不写 { },建议还是加上 { }。

        2.break

        break 是让循环提前结束。
        示例:找100-200中第一个3的倍数

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

            num++;

        }

        3.continue

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

        示例找到100-200中所有三的倍数

        int num = 100;
        while (num <= 200) {
                if (num % 3 != 0) {
                num++;
                continue;
                }

                System.out.println("找到了 3 的倍数, 为:" + num);
                num++;
         }

 

        4.for循环

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

                表达式4;

}

        表达式1:用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次,表达式2循环条件,满则循环继续,否则循环结束,表达式3 循环变量更新方式。

示例 打印1-100的和

int sum = 0;
for (int i = 1; i <= 100; i++) {sum += i;
} 
System.out.println("sum = " + sum);

 

        5.do while循环

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

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

示例 打印1-10

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

         注意:do while 循环最后的分号不要忘记。

四、输入输出

        1.输出到控制台

System.out.println(msg);// 输出一个字符串, 带换行
System.out.print(msg);//输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出,printf 的格式化输出方式和 C 语言的 printf 是基本一致的

        示例

        System.out.println("hello world");
        int x=10;

        System.out.printf("x=%d\n",x);

 格式化字符串

转换符类型举例结果
d十进制整数(“%d”,100)100
x十六进制整数(“%x”,100)64
o八进制整数(“%o”,100)144
f定点浮点数(“%f”,100f)100.000000
e指数浮点数(“%e”,100f)1.000000e+02
g通用浮点数(“%g”,100f)100.000
a十六进制浮点数(“%a”,100)0x1.9p6
s字符串(“%s”,100)100
c字符(“%c”,'1')1
b布尔值(“%b”,100)true
h散列码(“%h”,100)64
%百分号(“%.2f%%”,2/7f)0.29%

        2.从键盘输入

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

 

import java.util.Scanner; // 需要导入 util 包
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();//输入字符串,也可以用next,但若字符串中有空格,使用next则只打印空格前的的字符串

System.out.println(name);

Scanner sc=new Scanner(System.in);
String name = sc.next();
System.out.println(name);

Scanner sc = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = sc.nextInt();

System.out.println(age);

 

        Scanner sc=new Scanner(System.in);

        System.out.println("请输入工资");

        float salary =sc.nextFloat();

        System.out.println(salary);

 

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(); // 注意, 要记得调用关闭方法
 

 循环输入n个整数并求和读取平均值

Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;

//判断是否有整数
while (sc.hasNextInt()) {
int tmp = sc.nextInt();
sum += tmp;
num++;
} S
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();

注意:当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z(cmd),ctrl(IDEA), Linux / Mac 上使用 ctrl+ d)。

相关文章:

Java-逻辑控制

目录 一、顺序结构 二、分支结构 1.if语句 2.swich语句 三、循环结构 1.while循环 2.break 3.continue 4.for循环 5.do while循环 四、输入输出 1.输出到控制台 2.从键盘输入 一、顺序结构 按照代码的书写结构一行一行执行。 System.out.println("aaa"); …...

UE 透明渲染次序

附加顺序 用最外面的球, 依次附加里面的球 最后附加的物体优先级最高 附加顺序 用最里面的球, 依次附加外面的球 这样渲染顺序就对了...

【C++】多态原理剖析,Visual Studio开发人员工具使用查看类结构cl /d1 reportSingleClassLayout

author&#xff1a;&Carlton tag&#xff1a;C topic&#xff1a;【C】多态原理剖析&#xff0c;Visual Studio开发人员工具使用查看类结构cl /d1 reportSingleClassLayout website:黑马程序员C tool&#xff1a;Visual Studio 2019 date&#xff1a;2023年7月24日 目…...

vue实现flv格式视频播放

公司项目需要实现摄像头实时视频播放&#xff0c;flv格式的视频。先百度使用flv.js插件实现&#xff0c;但是两个摄像头一个能放一个不能放&#xff0c;没有找到原因。&#xff08;开始两个都能放&#xff0c;后端更改地址后不有一个不能放&#xff09;但是在另一个系统上是可以…...

iptables安全技术和防火墙

防火墙&#xff1a;隔离功能 位置&#xff1a;部署在网络边缘或主机边缘&#xff0c;在工作中&#xff0c;防火墙的主要作用是决定哪些数据可以被外网访问以及哪些数据可以进入内网访问&#xff0c;主要在网络层工作 其他类型的安全技术&#xff1a;1、入侵检测系统 2、入侵…...

微信小程序开发5

一、自定义组件-插槽 1.1、什么是插槽 在自定义组件的wxml结构中&#xff0c;可以提供一个<slot>节点(插槽)&#xff0c;用于承载组件使用者提供的wxml结构 1.2、单个插槽 在小程序中&#xff0c;默认每个自定义组件中允许使用一个<slot>进行占位&#xff0c;这种…...

【算法题】2681. 英雄的力量

题目&#xff1a; 给你一个下标从 0 开始的整数数组 nums &#xff0c;它表示英雄的能力值。如果我们选出一部分英雄&#xff0c;这组英雄的 力量 定义为&#xff1a; i0 &#xff0c;i1 &#xff0c;… ik 表示这组英雄在数组中的下标。那么这组英雄的力量为 max(nums[i0],n…...

fastutil简单测试下性能

前言 简单测试一下fastutil的实现和Java类库实现的速率。 使用jmh进行测试。 简单解释一下&#xff0c;每轮测试预热2次&#xff0c;每次1s&#xff1b;实测2次&#xff0c;每次1秒。 进行5轮测试。数组大小3种。 package fastutil;import it.unimi.dsi.fastutil.ints.IntArr…...

【FAQ】关于无法判断和区分用户与地图交互手势类型的解决办法

一&#xff0e; 问题描述 当用户通过缩放手势、平移手势、倾斜手势和旋转手势与地图交互&#xff0c;控制地图移动改变其可见区域时&#xff0c;华为地图SDK没有提供直接获取用户手势类型的API。 二&#xff0e; 解决方案 华为地图SDK的地图相机有提供CameraPosition类&…...

腾讯云裸金属服务器CPU型号处理器主频说明

腾讯云裸金属服务器CPU型号是什么&#xff1f;标准型BMSA2裸金属服务器CPU采用AMD EPYC ROME处理器&#xff0c;BMS5实例CPU采用Intel Xeon Cooper Lake处理器&#xff0c;腾讯云服务器网分享落进书房武器CPU型号、处理器主频说明&#xff1a; 裸金属服务器CPU处理器说明 腾讯…...

工程安全监测无线振弦采集仪在建筑物中的应用

工程安全监测无线振弦采集仪在建筑物中的应用 工程安全监测无线振弦采集仪是一种用于建筑物结构安全监测的设备&#xff0c;它采用了无线传输技术&#xff0c;具有实时性强、数据精度高等优点&#xff0c;被广泛应用于建筑物结构的实时监测和预警。下面将从设备的特点、应用场…...

【iOS】isKindOfClass和isMemberOfClass方法

前言 这个归根结底还是在考察我们对isa走向图和类的继承的理解&#xff0c;也就是苹果官方这幅图&#xff1a; 接下来的函数调用流程请参考这张图。 1 isKindOfClass方法 1.1 objc_opt_isKindOfClass C函数 查看源码可发现&#xff0c;无论是谁调用isKindOfClass方法都会…...

李飞飞「具身智能」VoxPoser:0预训练完成复杂指令

机器人接入大模型听懂人话 论文地址&#xff1a; https://voxposer.github.io/voxposer.pdf 项目主页&#xff1a; https://voxposer.github.io/ 参考链接&#xff1a; [1]https://twitter.com/wenlong_huang/status/1677375515811016704 [1]https://www.amacad.org/publicatio…...

前端八股文

info 毕业设计(课题、方向 本科毕业设计&#xff1a;家庭医生签约管理系统后台开发(微信小程序) 硕士课题&#xff1a;医学图像分割(婴儿脑分割) 51062319991129351X 邮编 重庆市南岸区 400000 13183849783 // 18728097929 // 13158442955 中国广电四川网络股份有限公司中江…...

前端年度工作述职报告优秀

前端年度工作述职报告优秀篇1 尊敬的各位领导、各位同仁&#xff1a; 大家好!按照20__年度我公司就职人员工作评估的安排和要求&#xff0c;我认真剖析、总结了自己的工作情况&#xff0c;现将本人工作开展情况向各位领导、同仁做以汇报&#xff0c;有不妥之处&#xff0c;希…...

【MyBatis 学习一】认识MyBatis 第一个MyBatis查询

目录 一、认识MyBatis 1、MyBatis是什么&#xff1f; 2、为什么要学习MyBatis? 二、配置MyBatis环境 1、建库与建表 2、创建新项目 3、xml文件配置 &#xff08;1&#xff09;配置数据库连接 &#xff08;2&#xff09;配置 MyBatis 中的 XML 路径 三、测试&#x…...

TCP 和 UDP

TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09; 是面向连接的协议&#xff0c;即在收发数据前&#xff0c;必须和对方建立可靠的连接&#xff0c;TCP的头部为20个字节。 UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协…...

springboot配置自定义数据源(Druid德鲁伊)的步骤。

今天和大家分享下在Springboot中配置自定义数据源Druid的两种方法及步骤。 方法一&#xff1a; 1.在pom.xml配置依赖(注释里面的内容) 2.配置自己的数据源设置&#xff0c;我是在yaml文件中配置的&#xff0c;顺便提醒一下&#xff0c;在配置yaml文件的时候缩进问题一定要注意…...

K8S:容器日志收集与管理

Kubernetes 里面对容器日志的处理方式&#xff0c;都叫作 cluster-level-logging&#xff0c;即&#xff1a;这个日志处理系统&#xff0c;与容器、Pod 以及 Node 的生命周期都是完全无关的。这种设计当然是为了保证&#xff0c;无论是容器挂了、Pod 被删除&#xff0c;甚至节点…...

Flutter系列文章-Flutter进阶

在前两篇文章中&#xff0c;我们已经了解了Flutter的基础知识&#xff0c;包括Flutter的设计理念、框架结构、Widget系统、基础Widgets以及布局。在本文中&#xff0c;我们将进一步探讨Flutter的高级主题&#xff0c;包括处理用户交互、创建动画、访问网络数据等等。为了更好地…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API&#xff0c;让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API&#xff0c;你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...

Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解

文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一&#xff1a;HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二&#xff1a;Floyd 快慢指针法&#xff08;…...