流程控制 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) 就是直接或间接调用自身的方法

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

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

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

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

相关文章

【C++map和set容器:AVL树、红黑树详解并封装实现map和set】

[本节目标] map和set底层结构 AVL树 红黑树 红黑树模拟实现STL中的map和set 1.底层结构 前面对map/multimap/set/multiset进行了简单的介绍&#xff0c;在其文档介绍中发现&#xff0c;这几个容器有个 共同点是&#xff1a;其底层都是按照二叉搜索树来实现的&#xff0c;但…

高并发缓存策略大揭秘:面试必备的缓存更新模式解析

在高并发场景中&#xff0c;缓存能抵挡大量数据库查询&#xff0c;减少数据库压力&#xff0c;对于缓存更新通常有以下几种模式可以选择&#xff1a; cache asideread/write throughwrite behind caching cache aside模式 Cache-aside模式是一种常用的用于管理缓存的模式。它…

RocketMQ学习笔记四(黑马)

课程地址&#xff1a; 1.Rocket第二章内容介绍_哔哩哔哩_bilibili &#xff08;视频35~88&#xff0c;搭建了一个电商项目&#xff09; 待学&#xff0c;待完善。

瑞_23种设计模式_策略模式

文章目录 1 策略模式&#xff08;Strategy Pattern&#xff09;★1.1 介绍1.2 概述1.3 策略模式的结构1.4 策略模式的优缺点1.5 策略模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK源码解析&#xff08;Comparator&#xff09; &#x1f64a…

mysql中用逗号隔开的某字段,如何判断其他表的字段值是否在这个字段中

因为要增加需求&#xff0c;需要将线上表中老数据&#xff0c;修改为新数据的规则。 线上两张表&#xff0c;sequence_number中is_use有3作废、2到期状态&#xff0c;需要根据这个状态和school_ai_authorization中的is_deleted修改新增的state字段。 sequence_number表结构&…

温暖如初春:新生儿脸红小贴士

引言&#xff1a; 新生儿脸红是许多父母热切期待的瞬间之一。这种可爱的现象不仅令人陶醉&#xff0c;还可能是宝宝良好健康的标志。然而&#xff0c;在欣喜之余&#xff0c;父母也需要留意脸红背后的可能原因和注意事项&#xff0c;以确保宝宝的舒适和健康。 1. 探寻原因&…

通天星CMSV6 车载视频监控平台 信息泄露漏洞

漏洞描述 通天星CMSV6车载视频监控平台 StandardLoginAction getAlser.acion接口处存在信息泄露漏洞 fofa语句 body"/808gps/" 漏洞复现 打开页面 构造payload POST /808gps/StandardLoginAction_getAllUser.action HTTP/1.1 Host: User-Agent: Mozilla/5.0 (…

ASP.NET区域检验云LIS平台源码 标本全生命周期管理

目录 一、云LIS系统功能亮点 二、收费项目管理 三、检验项目管理 系统功能 云LIS系统源码是一款全面的实验室信息管理系统源码&#xff0c;其主要功能包括样本管理、检测项目管理、质控管理、报告管理、数据分析、两癌筛查等多个方面。具有独立的配套SaaS模式运维管理系统&…

轻量级内网穿透服务-nps

1. NPS概述&#xff1a; NPS&#xff08;内网穿透代理服务器&#xff09;是一款由TalentYoung开发的轻量级、高性能的内网穿透代理服务器。它的设计目标是简单易用、功能强大&#xff0c;可以帮助用户在公网上访问内网服务。 NPS支持TCP、UDP、HTTP等多种协议&#xff0c;并提…

翻转时钟效果

时分秒三个部分结构功能完全一致&#xff0c;均有四块构成&#xff0c;上下各两块。 正面可见&#xff0c;背面不可见&#xff0c;同时需要调整翻转过程中的z-index。 初始状态card2为已经翻转状态。 calendar.html <!DOCTYPE html> <html lang"en">&…

非常有用的Python 20个单行代码

有用的 Python 单行代码片段&#xff0c;只需一行代码即可解决特定编码问题&#xff01; 在本文中&#xff0c;云朵君将分享20 个 Python 一行代码&#xff0c;你可以在 30 秒或更短的时间内轻松学习它们。这种单行代码将节省你的时间&#xff0c;并使你的代码看起来更干净且易…

H5 带网站测速引导页源码

源码名称&#xff1a;带网站测速引导页源码 源码介绍&#xff1a;一款带网站测速功能的引导页源码 需求环境&#xff1a;H5 下载地址&#xff1a; https://www.changyouzuhao.cn/10717.html

H5 机器人插件官网源码

源码名称&#xff1a;机器人插件官网源码 源码介绍&#xff1a;一款H5自适应机器人插件官网源码&#xff0c;可自行修改用于各种机器人插件官网。 需求环境&#xff1a;H5 下载地址&#xff1a; https://www.changyouzuhao.cn/10774.html

基于单片机的直流电机调速系统设计

摘 要 在电子机械行业快速发展的今天&#xff0c;各类电子机械类产品以飞快的步伐进入到人们的视野中。为人们的生活带来极大的便利。同时也以各种不同的方式解放着生产力。在这些电子机械领域&#xff0c;电机无疑占着举足轻重的位置。现在各类工厂里的自动化生产线&#xff…

大数据与云计算

目录 一、大数据时代二、云计算——大数据的计算三、云计算发展现状四、云计算实现机制五、云计算压倒性的成本优势 一、大数据时代 我们先来看看百度关于 “大数据”&#xff08;Big Data&#xff09;的搜索指数。 可以看出&#xff0c;“大数据” 这个词是从2012年才引起关注…

MATLAB 四点确定唯一球面参数(44)

MATLAB 四点确定唯一球面参数(44) 一、算法简介二、算法实现1.代码2.结果一、算法简介 根据给定的四个点,快速拟合获取球的中心和半径,具体代码如下: 二、算法实现 1.代码 代码如下(示例): point1 = [0.0, 0.0, 0.0]

一种轻卡前视单目摄像头下线标定方法

本 文 介 绍 轻 卡 摄 像 头 的 下 线 标 定 要 求 和 方 法 &#xff0c; 包 括 工 站 搭 建 要 求 、 前 视 摄 像 头 的 安 装 要求 &#xff0c; 详 细 阐 述 摄 像 头 的 下 线 标 定 流 程 &#xff0c; 最 后 列 举 常 见 的 下 线 标 定 失 败 原 因 及 对 策 。 安装在…

Spring Boot 中使用 Redis + Aop 进行限流

Spring Boot 中使用 Redis 进行限流&#xff0c;通常你可以采用如下几种方式&#xff1a; 令牌桶算法&#xff08;Token Bucket&#xff09;漏桶算法&#xff08;Leaky Bucket&#xff09;固定窗口计数器&#xff08;Fixed Window Counter&#xff09;滑动日志窗口&#xff08…

Java:继承

目录 1.继承1.1为什么要使用继承&#xff1f;1.2继承的概念1.3对继承的理解1.4子类怎么访问父类的成员变量1.4.1不同名怎么访问&#xff1f;1.4.2同名怎么访问&#xff1f;(关键字&#xff1a;super) 1.5子类中访问父类的成员方法1.5.1不同名怎么访问&#xff1f;1.5.2同名怎么…

Apache DolphinScheduler-3.2.0集群部署教程

集群部署方案(2 Master 3 Worker) Apache DolphinScheduler官网&#xff1a;https://dolphinscheduler.apache.org/zh-cnApache DolphinScheduler使用文档&#xff1a;https://dolphinscheduler.apache.org/zh-cn/docs/3.2.0截止2024-01-19&#xff0c;最新版本&#xff1a;3…