流程控制 JAVA语言基础

任何简单或复杂的算法都可以由三种基本结构组成:顺序结构,选择结构,循环结构。

顺序结构

比较一般的结构,程序从上到下执行。

选择结构

我们从最简单的单路选择开始,符合条件的进入语句序列,不符合条件的跳出执行接下来的代码。倘若我们不符合条件的要进行的操作是要和接下来的代码不一样,那么我们就用else来进行接下来的语句块。表示不符合条件的其他情况所进入的语句序列。那么这样的话我们就能延伸出其他情况了,若不符合“其他”又不想进入接下来的语句序列,我们又该如何?显然,我们用到的是多重条件选择结构。

例子:从键盘上输入一个月份,判断该月份的天数。

import java.util.Scanner;//使用Scanner方法实现输入
public class App {
    public static void main(String[] args) throws Exception {
        int month, days;
        Scanner sc = new Scanner(System.in);
        System.out.print("month number:");
        month = sc.nextInt();
        switch (month) {
            case 2:
                days = 28;
                break;
            case 4:
            case 6:
            case 8:
            case 10:
            case 12:
                days = 30;
                break;
            default:
                days = 31;
                break;
        }
        sc.close();
        System.out.println(month + " month has " + days + " days");
    }
}

从键盘上输入从键盘上输入一个月份,判断该月份的天数(假设不是闰年)一个月份,判断该月份的天数(假设不是闰年)

循环结构

for循环,表达式一为初始表达式,条件表达式判断是否进入循环体为限制条件,表达式二一般是对表达式的变量进行改变,从而让其靠近限制条件。

while循环,循环比较简单,条件表达式内若判断为ture则进入循环,若为false则退出循环。

循环例子:从键盘上输入一个数,判断该数是否是斐波那契数列中的数。

首先斐波那契数列的规律是后一个数是前两个数的和,我们能用循环的方法构造此规律。

import java.io.*;//这里我们使用bufferedReader方法读取
public class App {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Please input a number:");
        int input = Integer.parseInt(br.readLine());
        int a = 0, b = 1;
        while (a < input) {
            int newA = b;
            b = a + b;
            a = newA;
        }
        if (a == input) {
            System.out.println(input + " is right");
        } else {
            System.out.println(input + " isn't the number0");
        }
    }
}

从键盘上输入一个数,判断该数是否是Fibonacci序列中的数

do-while循环结构,先执行do中语句,再判断while,与while区别是do-while一定会执行一遍循环体。

public class App {
    public static void main(String[] args) {
        int sum = 0;
        for (int a = 2; a <= 100; a++) {
            boolean tag = true;// tag要定义在循环体内,大家可以想一下若定义在循环体外答案还对吗?
            for (int b = 2; b <= Math.sqrt(a); b++) {// 适当减枝
                if (a % b == 0) {
                    tag = false;
                }
            }
            if (tag) {
                sum++;
            }
        }
        System.out.println(sum);
    }
}

循环语句中的跳转语句

break 语句

使程序的流程从一个语句块(switch或循环结构)内跳出;

break ;

continue 语句

终止当前轮次循环,进入下一轮循环 ;

continue ;

return 语句

用来使程序从方法(函数)中返回,并返回一个值。

return 返回值 ;

递归

递归(Recursion) 就是直接或间接调用自身的方法

要终止一个递归方法,问题必须达到一个终止条件(即递归边界)

当问题达到终止条件时就会将结果返回给调用者。然后调用者进行计算并将结果返回给它自己的调用者。这个过程持续进行,直到结果传回给原始的调用者为止。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Java公司配件库存管理系统设计与实现【附项目源码】分享

基于Java公司配件库存管理系统设计与实现&#xff1a; 源码地址&#xff1a;https://download.csdn.net/download/weixin_43894652/88842718 基于Java的公司配件库存管理系统设计与实现需求文档 一、项目背景和目标 随着公司业务的不断拓展&#xff0c;配件库存管理逐渐成为…

旭日x3派部署自己训练的模型(安全帽识别、视频流推理、yolov5-6.2)

旭日x3派部署自己训练的模型&#xff08;安全帽识别、视频流推理、yolov5-6.2&#xff09;windows&#xff0c;框架pytorch&#xff0c;python3.7 效果模型训练模型转换1、pt模型文件转onnx2、检查onnx模型3、准备校准数据4、onnx转bin 上板视频流推理1、图片推理2、视频流推理…

ArrayBlockingQueue与LinkedBlockingQueue底层原理

ArrayBlockingQueue与LinkedBlockingQueue底层原理 在线程池中&#xff0c;等待队列采用ArrayBlockingQueue或者LinkedBlockingDeque&#xff0c;那他们是怎么实现存放线程、阻塞、取出的呢&#xff1f; 一、ArrayBlockingQueue底层原理 1.1 简介 ArrayBlockingQueue是一个阻塞…

centos7 install rocketmq 宿主机快速搭建RocketMQ单机开发环境

为什么采用宿主机而不采用 Docker 方式快速搭建 在搭建 RocketMQ 测试环境时&#xff0c;我们可以选择在宿主机上直接安装和配置&#xff0c;也可以使用 Docker 容器来快速搭建。然而&#xff0c;为什么我们选择了在宿主机上安装而不是使用 Docker 方式呢&#xff1f; 调整配置…

电池的性能指标

1 电池基本概念 电池是通过电化学反应将化学能转换为电能的设备。根据是否可反复充电使用&#xff0c;可分为干电池和蓄电池两类。 电池中涉及电化学反应的部分为电极和电解质&#xff0c;电化学反应发生在电极和电解质接触的表面&#xff0c;电解质仅负责协助带电粒子的移动…

腾讯云服务器入站规则端口开放使用指南(CentOS系统)

第一步&#xff1a;开放安全组入站规则 来源处0.0.0.0/0是对IPv4开发&#xff0c;::/0是对IPv6开放&#xff1b; 协议端口按照提示填写即可。云服务器防火墙开放 第三步&#xff1a;本地防火墙开放 sudo firewall-cmd --zonepublic --add-port你的端口号/tcp --perma…

瑞典斯凯孚SKF激光对中仪维修TKSA40/60

SKF对中仪维修型号包括&#xff1a;TKSA40、TKSA20、TKSA31、TKSA41、TKSA51、TKSA71等 斯凯孚SKF激光对中仪维修产品技术参数及注意事项&#xff1a; 该设备有两个无线测量单元、大尺寸测位传感器和更大功率的激光器&#xff0c;即使在严苛的条件下也能实现测量。 显示器单元…

显著性检验P值...

显著性检验&#xff1a;P值和置信度_显著性p<0.05,p<0.01,p<0.001-CSDN博客 看论文里面一般在结果后面都会加上 虽然学过概率统计&#xff0c;但是一直不懂在结果这里加上这个代表什么含义&#xff0c;以及如何计算&#xff0c;参考上面链接进行学习。 P值指的是比较…

蓝桥杯刷题|03入门真题

目录 [蓝桥杯 2020 省 B1] 整除序列 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码及思路 [蓝桥杯 2020 省 AB3] 日期识别 题目描述 输入格式 输出格式 输入输出样例 说明/提示 代码及思路 [蓝桥杯 2019 省 B] 特别数的和 题目描述 输入格式 输出格…

Web本体语言OWL

语义网&#xff08;Semantic Web&#xff09;&#xff1a; 语义网是万维网联盟&#xff08;W3C&#xff09;提出的一种愿景&#xff0c;旨在增强现有Web的表达能力和智能处理能力&#xff0c;通过标准化的技术手段赋予网络数据更加精确和可计算的语义&#xff0c;使得机器能够…

分布式系统常见负载均衡实现模式

分布式系统常见负载均衡实现模式 1. 4层负载均衡1.1. 负载均衡的常见需求1.2. 负载均衡的实现模式1.2.1 DR模式1.2.2 TUN模式1.2.3 NAT模式1.2.4 FULLNAT模式1.2.5 4种模式的差异 1.3. 负载均衡的均衡算法1.3.1 静态负载均衡1.3.2 轮询法1.3.3 加权循环法1.3.4 IP 哈希法1.3.5 …

数式Oinone应邀参加国有企业数字化优秀案例分享会,现场演讲引发热议

活动背景 为了贯彻落实党的二十大精神,加快中国数字化发展的步伐,以及推动国有资本和国有企业的高质量发展,广东省首席信息官协会于3月14日举办了“第七期国有企业数字化优秀案例分享会”。 此次会议吸引了广深两地:广东建科院、广州白云山中一药业有限公司、越秀交通、中国能…

腾讯云4核8G服务器支持多少人在线?CPU性能如何?

腾讯云轻量4核8G12M服务器配置446元一年&#xff0c;646元12个月&#xff0c;腾讯云轻量应用服务器具有100%CPU性能&#xff0c;系统盘为180GB SSD盘&#xff0c;12M带宽下载速度1536KB/秒&#xff0c;月流量2000GB&#xff0c;折合每天66.6GB流量&#xff0c;超出月流量包的流…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Progress)

进度条组件&#xff0c;用于显示内容加载或操作处理等进度。 说明&#xff1a; 该组件从API version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Progress(options: ProgressOptions<Type>) 创建进度组件&a…

操作多级(一、二、三级)指针才是我们的该有的姿态~

Hello&#xff0c;很有缘在这篇文章上我们相遇了&#xff0c;那么我就用题目巩固我们多级指针的知识&#xff0c;当然这里的题目是比较有点难度的&#xff0c;我们需要有点基础呀&#xff0c;如果你能轻松理解题目那说明你对指针的了解已经很有基础了呢&#xff0c;那废话不多说…

this是什么?为什么要改变this?怎么改变 this 指向?

目录 this 是什么&#xff1f; 箭头函数中的 this 为什么要改变 this 指向&#xff1f; 改变 this 指向的三种方法 call(无数个参数) apply(两个参数) bind(无数个参数) this 是什么&#xff1f; 在对象方法中&#xff0c;this 指的是所有者对象&#xff08;方法的拥有者…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Navigator)

路由容器组件&#xff0c;提供路由跳转能力。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 接口 Navigator(value?: {target: string, type?: NavigationType}) …

网络安全之URL过滤

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; URL过滤是一种针对用户的URL请求进行上网控制的技术&#xff0c;通过允许或禁止用户访问某些网页资源&#xff0c;达到规范上网行为和降低安全风险…

前端项目(vue3)自动化部署(Gitlab CI/CD)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

VUE 运行NPM 报错:npm ERR! code CERT_HAS_EXPIRED 解决方案

现象 由于各种原因需要调试一下VUE代码&#xff0c;用Git拉下来运行不了&#xff08;之前是可以正常运行的&#xff09;&#xff0c;报错为&#xff1a;npm ERR! code CERT_HAS_EXPIRED........... 原因 NPM 证书签名过期了 解决方法 第一步&#xff1a;CMD 命令 查看NPM代理源…