Java基础篇_1.5——程序流程控制之循环结构【包含各种图形练习】

news2024/11/15 23:35:59

1、循环结构

循环:java中的循环有 while / do-while / for 。循环结构的特点是给定的循环条件成立时,反复执行某段程序,直到循环条件不成立。

1.2 while循环

定义变量并赋初始值
while(循环条件){
	// 循环体,要改变循环变量
}
注意:在循环体中要动态改变循环变量

1.3 do while循环

循环变量初始化
do {
	#循环体
} while (循环条件)

先执行循环体,再判断循环条件是否满足,如果满足继续执行,不满足结束循环。也就是说 do while 至少会执行一次。

1.3 for 循环

for(表达式1;表达式2;表达式3){
	// 循环体
}
	表达式1可以是循环变量初始化
	表达式2循环条件
	表达式3可以是改变循环变量
for(循环变量初始化;循环条件;改变循环变量){
	// 循环体
}
执行顺序:
1. 执行表达式1(循环变量初始化)
2. 执行表达式2(判断循环条件)
3. 如果表达式2返回`true`(循环条件成立),执行循环体,如果表达式2返回`false`,结束循环,
不进行之后的操作。
4. 执行表达式3(改变循环变量)
5. 重复2操作
注意:`表达式1`只执行1

1.3.1 for循环的使用

public static void main(String[] args) {
// 需求:计算1~100的和
int sum = 0;
for (int i = 1; i <= 100 ; i++) {
	//变量的作用域,变量可以使用的地方(范围),变量的作用域一般是离它最近的大括号
	sum += i;
}
// int i = 1;
// for(;i <= 100;) {
	// sum += i;
	// i++;
// }
System.out.println("1~100的和是:" + sum);
}

1.4 循环比较

  • for 适合循环次数已知/每次都要改变循环变量的情况
  • while 适合循环次数不确定的情况
  • do-while 相对于 while 来说,至少要执行一次的情况
    以下是一个示例代码,展示了Java中的流程控制语句if-else和for循环的用法:
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num = scanner.nextInt();

        if (num % 2 == 0) {
            System.out.println("你输入的是偶数!");
        } else {
            System.out.println("你输入的是奇数!");
        }

        System.out.println("接下来,请输入一个正整数:");
        int n = scanner.nextInt();

        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

解释:这个程序首先从用户获取一个整数,然后使用if-else语句判断这个整数是奇数还是偶数。
接着,程序要求用户输入一个正整数,然后使用for循环语句输出一个由星号组成的等腰三角形。内部的两个for循环分别用于控制行数和每行星号的数量。

1.5 嵌套循环

关于嵌套循环的使用案例:
1、九九乘法表

System.out.println("-----------------九九乘法表-----------------------");
        // 九九乘法表【正的】
        for (int i = 1; i <=9; i++) {		// 外层循环控制“行数”
            for (int j = 1; j <= i; j++) {		// 内层循环控制“列数”
                System.out.print(i + "*" + j + "=" + i*j + "\t");
            }
            System.out.println();
        }

九九乘法表

2、菱形

System.out.println("-------------------菱形------------------------");
        for (int i = 1; i <= 10; i++) {			// 外层循环控制“行数”
            for (int j = 10; j >= i; j--) {		// 该循环控制每行的空格数
                System.out.print(" ");
            }
            for (int j = 1; j <= i; j++) {		// 内层循环控制“列数”
                System.out.print("* ");
            }
            System.out.println();
        }
        for (int i = 9; i >= 1; i--) {
            for (int j = i; j <= 10; j++) {
                System.out.print(" ");
            }
            for (int j = i; j >= 1; j--) {
                System.out.print("* ");
            }
            System.out.println();
        }

菱形

2、跳转语句

java 中支持3种类型的跳转语句: break / continue / return

2.1 continue

continue 指结束本次循环,让循环体提前结束

2.2 break

switch 中 break 是终止 switch 语句,在循环中是结束当前循环

2.3 return

return 指返回,一般用于有返回值的方法中,用于返回具体的值。如果方法是void,使用 return是提前结束此方法,返回到方法的调用处。

break和return有几个相似之处:

  1. 二者都可以提前结束程序执行。break用于终止循环,而return用于终止函数的执行。

  2. 两者都可以用于控制程序的流程。break可以用于跳出循环,而return可以用于跳出函数并返回值。

  3. 相关语法方面,两者都是关键字,用于控制程序执行的流程。

2.4 throw语句

throw语句用于抛出异常,如果在一个方法中发现异常情况,可以使用throw语句将一个异常对象抛出,由调用该方法的代码块处理该异常。

2.5 关于标签(补充)

// outer/inner 可自定义
	outer:for (int i = 0; i < 10; i++) {
		inner:for (int j = 0; j < 10; j++) {
			if(j == 2) {
			continue outer; //break outer;
			}
		System.out.println(i + "," + j);
		}
	System.out.println("外层循环" + i);
	}

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

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

相关文章

【计算机网络】应用层协议 -- DNS协议

文章目录 1. DNS背景2. 域名简介3. 域名解析过程4. 使用dig查看DNS过程 1. DNS背景 DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;协议&#xff0c;是一个用来将域名转化为IP地址的应用层协议。 TCP/IP当中通过IP地址和端口号的方式&#xff0c;来确定…

pygame示例滚动的气球

pygame示例滚动的气球 使用pygame实现一个滚动的气球。 import sys, pygame # 将有限的常量和函数集放入脚本的全局名称空间中 from pygame.locals import *# 初始化pygame模块 pygame.init() # 创建图形窗口&#xff0c;pygame把图形表示为Surface对象 size width, height …

增强知识保护和知识管理:PDM系统的知识库特色

在现代竞争激烈的商业环境中&#xff0c;知识保护和知识管理对企业的发展至关重要。PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;作为一款强大的数字化工具&#xff0c;具备丰富的知识库特色&#xff0c;帮助企业增强知识保护和知识管理的…

2023年华数杯C题详细思路

2023年华数杯作为与国赛同频的比赛&#xff08;都是周四6点发题&#xff0c;周日晚8点交卷&#xff09;&#xff0c;也是暑期唯一一个正式比赛。今年的报名队伍已经高达6000多对。基于这么多的人数进行国赛前队伍的练习&#xff0c;以及其他用途。为了方便大家跟更好的选题&…

夏日启航 奔向云端 技术实践闭门交流会 | 专场回顾

7月28日&#xff0c;华锐技术ACLUB联合亚马逊云科技在上海华锐9号楼举办了“夏日启航 奔向云端 技术实践闭门交流会”沙龙活动&#xff0c;与上海地区近30家量化机构的投研和技术人员一起&#xff0c;就软硬加速、云计算和HPC等技术如何实践于量化投资&#xff0c;进行了深入探…

Java框架(九)--Spring Boot入门(2)

SpringBoot 核心功能讲解 SpringBoot之web请求静态资源 我们可以在浏览器访问src/main/resources/static目录下的静态资源&#xff0c;在此目录下新建test.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…

MybatisPlus实战笔记

概述 Mybatis支持定制化SQL、存储过程以及高级映射&#xff0c;避免几乎所有的 JDBC 代码和手动设置参数以及获取结果集。可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c;将接口和Java的POJO映射成数据库中的记录。 缺点&#xff1a; SQL工作量很大&#xff0c;尤…

结构体和 Json 相互转换(序列化反序列化)

关于 JSON 数据 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也 易于机器解析和生成。RESTfull Api 接口中返回的数据都是 json 数据。 Json 的基本格式如下&#xff1a; { "a": "Hello", "b": "…

DC-2靶机

文章目录 信息收集漏洞发现漏洞利用 DC-2介绍 DC-2环境下载 请注意&#xff0c;您需要将渗透测试设备上的 hosts 文件设置为&#xff1a; 192.168.0.145 dc-2 显然&#xff0c;将 192.168.0.145 替换为 DC-2 的实际 IP 地址。 它将使生活变得更加简单&#xff08;如果没有它&am…

【Linux】从0到1实现一个进度条小程序

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;gitee仓库 分享一句喜欢的话&#xff1a;热烈的火焰&#xff0c;冰封在最沉默的火山深处 文章目录 前言一、理解回车 \r 和换行 \n二、初步认识缓冲区1. 认识第一个函数&#xff1a;sleep2.观察缓冲区…

固态继电器:电气开关的革命

简介&#xff1a;在电气工程领域&#xff0c;固态技术的发展为各个领域的显着进步铺平了道路。固态继电器 (SSR) 就是其中一项备受关注的创新。与传统机电继电器不同&#xff0c;SSR 采用固态元件&#xff0c;具有许多优点&#xff0c;例如更高的可靠性、更快的响应时间和增强的…

dvwa靶场通关(十)

第十关&#xff1a;DOM Based Cross Site Scripting (XSS) DOM—based XSS漏洞的产生 DOM—based XSS漏洞是基于文档对象模型Document Objeet Model&#xff0c;DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口&#xff0c;它允许程序或脚本动态地访问和更新文档内容、…

有效的括号字符串(力扣)动态规划、贪心 JAVA

给你一个只包含三种字符的字符串&#xff0c;支持的字符类型分别是 ‘(’、‘)’ 和 ‘*’。请你检验这个字符串是否为有效字符串&#xff0c;如果是有效字符串返回true 。 有效字符串符合如下规则&#xff1a; 任何左括号 ‘(’ 必须有相应的右括号 ‘)’。 任何右括号 ‘)’ …

postgresql表膨胀处理之pgcompacttable部署及使用

环境&#xff1a; 1&#xff09;redhat-release&#xff1a;CentOS Linux release 7.6.1810 (Core) 2&#xff09;database version&#xff1a;postgresql 14.6 一、添加pgstattuple pgcompacttable工具使用过程中需要依赖pgstattuple&#xff0c;因此需先添加pgstattuple…

[C++]01.基础,数据类型,运算符

01.基础,数据类型,运算符 一.C基础入门1.HelloWorld2.注释3.变量4.常量5.关键字6.命名规则 二.数据类型1.整形2.sizeof关键字3.浮点型4.字符型5.转义字符6.字符串型7.布尔类型8.数据的输入 三.运算符1.算数运算符2.赋值运算符3.比较运算符4.逻辑运算符 一.C基础入门 1.HelloWo…

【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 4

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

力扣 C++|一题多解之动态规划专题(1)

动态规划 Dynamic Programming 简写为 DP&#xff0c;是运筹学的一个分支&#xff0c;是求解决策过程最优化的过程。20世纪50年代初&#xff0c;美国数学家贝尔曼&#xff08;R.Bellman&#xff09;等人在研究多阶段决策过程的优化问题时&#xff0c;提出了著名的最优化原理&…

【习题】几道二叉树题目,进来看看你会不?

几道二叉树题目解析 前言正式开始1. 根据二叉树创建字符串&#xff08;力扣606&#xff09;题目描述解析代码 2. 二叉树的层序遍历1&#xff08;力扣102&#xff09;题目描述解析代码 3. 二叉树的层序遍历2&#xff08;力扣107&#xff09;代码 4. 二叉树的最近公共祖先&#x…

接口测试之json中的key获取

在很多情况下我们在进行接口测试的时候都会有获取上个接口返回的json数据中的某个key值&#xff0c;然后下个接口调用这个key值。今天给大家讲解一下针对不同类型的json获取某个key的值。 一、首先是单纯object格式key值获取 获取图中的token的值&#xff0c;首先这是一个响应…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)【四】

文章目录 SSM(Vue3ElementPlusAxiosSSM前后端分离)--基础环境搭建【四】项目介绍项目功能/界面● SSM 整合项目界面 创建表&#xff0c;使用逆向工程生成Bean、XxxMapper 和XxxMapper.xml1. 创建furns_ssm 数据库和furns 表使用MyBatis Generator 逆向工程生成bean mapper 接口…