JAVA基础: while循环,for循环,break和continue关键字,数组详解

news2024/11/23 19:05:16

1 while循环

while(boolean结果)
	语句/语句组 
  1. 每次循环做什么事

  2. 循环条件

  3. 循环条件改变。

循环嵌套

在一个循环中,出现了另一个循环。

无限循环

循环条件永远为真。


int i = 10 ;
while(i > 0){
	//....
	i++ ;
}

-------------------------
while(true){

}


 

2 break关键字

可以用在两个位置

  • 在switch中,结束整个switch分支结构,防止穿透 。

  • 在循环中,手动停止循环

循环结束有两种情况

  1. 每次循环操作完成后,都会进行下一次循环条件判断,条件不成立,循环自然结束。

  2. 在循环中,使用break关键字,结束整个循环。

 

import java.util.* ;
public class Test2{
	public static void main(String[] args){
       //控制台不停的输入内容,直到输入-1为止。 
		Scanner input = new Scanner(System.in) ;
		while(true){
			int num = input.nextInt();
			if(num == -1){
				break ;
			}
		}
	}
}

 

3 continue关键字

只能用在循环中。

结束当前这一次循环,进行下一次循环判断。

 

4 循环命名

多在循环嵌套中配合break和continue关键字使用。

  • 在循环语法前,使用name : 为循环命名

  • 在循环中,使用break namecontinue name 对指定的循环做控制。

a:while(条件1){

	b:while(条件2){
		break ; //结束当前条件2这个循环,继续进行条件1的下一次循环
		continue ;//结束条件2当前这次循环,就绪进行条件2的下一次循环判断
		break a ;//结束条件1的循环,结束最外层整个循环
		continue a ;//结束条件1的本次循环,继续进行条件1的下一次循环判断
					//目前等价于break
	}
}
public class Test3{
	public static void main(String[] args){
		char c = 'A' ;

		a:while(c <= 'E' ){
			System.out.println(c);
			int j = 1 ;
			while(j <= 5){
				System.out.println("  " + j);
				if(c == 'C' && j==3){
					break a;
				}
				j++ ;
			}
			c++ ;
		}
	}
}

 

5 do-while循环

  • 更适合具有试探性的循环场景。

//控制台不断输入数字,直到输入-1为止
int num ;
do{
    num = input.nextInt() ;
}while(num != -1) ;

 

6 while 与 do-while

循环分解

while(boolean){}

if()
{}
if()
{}
if()
{}
if() --- end

 

  • do-while至少会执行一次。 while有可能一次都不执行 (第一次判断就失败)

  • 当循环可以执行起来时 (通过多次循环后,才结束)

    • 如果循环条件的改变发生在循环体中, do-while和while执行次数相同,while多判断一次

    • 如果循环条件的改变发生在判断体中

public class Test4{
	public static void main(String[] args){
		//重要的事情打印3次
		{
			int count = 0 ;
			while(count++ < 3){	//判断体中改变,打印3次
				System.out.println("Hello World !!!");
				//count++ ;		//循环体中改变, 打印3次
			}
		}
		
		System.out.println("-------------------------");
		{
			int count = 0 ;
			do{
				System.out.println("Hello World !!!");
				//count++ ;		//循环体中改变,打印3次
			}while(count++ < 3); 	//判断体中改变,打印4次
		}
	}
}

 

7 for循环

语法

for( 1 ; 2 ; 4){
	3
}

-----------------------------
int count = 0 ;
while(count < 3){
	print("dmc") ;
	count++ ;
}

for(int count=0 ; count < 3 ; count++){
	print("dmc") ;
}

 

  • 1部分 主要是用来做条件变量的定义与初始化

  • 2部分 主要是用来作为判断条件,需要是一个boolean结果。根据这个boolean判断是循环是否继续或停止

  • 3部分 循环体,每次循环要执行的操作

  • 4部分 主要用来做循环条件的改变。

  • 124部分都不是必须要写。 2部分不写, 表示无限循环。

 

8 数组

8.1 数组的特点

  • 数组是一个容器,用来存储一组位置连续,类型相同的变量(数据)

    当我们有一组类型相同,且操作相似的数据需要存储时,就可以存储在数组(的变量中)中

  • 数组数据 , 数组本身也是一个数据,也可以存储在其他的变量中

    可以存储在普通的变量中,也可以存储在另一个数组变量中 (多维数组)

  • 数组类型 数组数据的类型就是数组类型

    数组类型是引用类型中一种。 (引用类型包括 数组类型 , 对象类型)

    数组类型的数据,是一个复杂的数据,包含了一堆子(变量)数据。 不能直接存储在一个变量中,存储在JVM的堆空间中,会有存储地址。

    所以我们在应用引用类型数据时,都是通过地址间接操作(对空间中变量里的)数据

8.2 创建数组

也可以称为 定义数组(从无到有),产生一个数组

new int[5] ;

 

  • new是一个关键字,用来在堆空间中创建一个引用类型的数据 (分配一块内存空间)

  • [] 表示创建的是一个数组类型的数据。

  • [5] 表示数组中包含5个变量 (子数据)

  • int表示数组里的变量的类型

数组中的变量没有名字,但有位置,称为下标 或 索引 。 这个位置从0开始计数

在堆空间中产生的变量,会有默认值。

  • 栈中的变量(写在主方法力的变量),不会有默认值,使用时我们必须手动赋值(通过代码赋值)

  • 堆中的变量不能独立存在,而是存在于引用类型数据中

  • 默认值是什么?

    • 基本类型的默认值是 0 表现形式可能不同(0 , 0.0 , false , 空字符 )

    • 引用类型的默认值是null

数组元素

  • 数组中的每一个变量,都成为数组的元素,也可以称为数组的属性。

  • 数组还有一个额外的元素,叫length 存储数组中变量的个数 。 只能取值,不能赋值

  • 数组一旦创建,长度不可变(包含的变量数量不可变)

 

8.3 数组的应用

  • 数组数据的应用

(new int[5]) 和 10 都属于数据 . 对于数组这个引用类型的数据而言, 实际用的是地址。

print(10) ;
int num = 10 ;


int[] nums = (new int[5]) ;
print( (new int[5]) ) ;
print( nums ) ;

 数组容器的应用 . 本质就是使用数组中的变量,也就是找到变量

nums  //存储的是数组地址,就相当于找到了数组
nums[0] //找到数组中的某一个变量   等价于 int num ;

num = 10 ;
print(num) ;

nums[0] = 10 ;
print(nums[0]) ;

nums.length ;

nums[0]
(new int[5])[0] = 10;

 

8.4 数组的初始化

  • 静态初始化

int[] nums = new int[]{10,20,30,40,50} ;
或
int[] nums = {10,20,30,40,50} ;

  动态初始化

int[] nums = new int[5] ;

nums[0] = 10 ;
nums[1] = 20 ;
....

 

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

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

相关文章

mysql的整理

插入数据&#xff1a; INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...); insert into employee(id,workno,name,gender,age,idcard,entrydate) values(1,1,Itcast,男,-1,123456789012345678,2000-01-01); insert into employee values(3,3,韦一笑,男,38,1…

如何利用 CSS 渐变实现多样化背景效果

前言 总在平常看到像这样的图片 背景是如何实现的呢 背景效果的多样性和美观性直接影响用户体验。CSS 渐变为设计师提供了一种强大且灵活的方法来创建引人注目的背景。渐变是颜色之间平滑过渡的效果&#xff0c;通过调整渐变类型和设置&#xff0c;你可以轻松实现从简单到复杂…

和弦图制作软件有哪些,和弦音乐制作软件推荐

在音乐创作与教学领域&#xff0c;和弦图作为视觉化展现音乐和声结构的工具&#xff0c;扮演着至关重要的角色。随着技术的发展&#xff0c;众多和弦图制作软件应运而生&#xff0c;旨在简化创作流程&#xff0c;提升学习效率。然而&#xff0c;面对琳琅满目的选项&#xff0c;…

【Linux】多线程:线程控制

目录 一、创建线程&#xff1a;pthread_create 二、线程终止&#xff1a;pthread_exit、return、pthread_cancel 三、线程等待&#xff1a;pthread_join 四、线程分离&#xff1a;pthread_detach 五、如何创建并使用多线程 六、对线程进行封装 一、创建线程&#xff1a…

ModuleNotFoundError: No module named ‘keras.layers.core‘怎么解决

问题 ModuleNotFoundError: No module named keras.layers.core&#xff0c;如图所示&#xff1a; 如何解决 将from keras.layers.core import Dense,Activation改为from tensorflow.keras.layers import Dense,Activation&#xff0c;如图所示&#xff1a; 顺利运行&#xf…

中秋快到了,要给哪些国外客户送祝福(附贺卡模板)

马上就要中秋节了&#xff0c;在这里提前祝小伙伴们中秋节快乐&#xff0c;身体健康&#xff0c;阖家团圆&#xff0c;业绩越来越好&#xff0c;公司越来越好&#xff0c;一切都越来越好&#xff01; 中秋节是我们非常重要的几个传统节日之一了&#xff0c;除了我们自己庆祝之…

深入理解Java中的clone对象

目录 1. 为什么要使用clone 2. new和clone的区别 3. 复制对象和复制引用的区别 4.浅克隆和深克隆 5. 注意事项 1. 为什么要使用clone 在实际编程过程中&#xff0c;我们常常遇到这种情况&#xff1a;有一个对象 A&#xff0c;需要一个和 A 完全相同新对象 B&#xff0c;并…

【【通信协议之ARP的FPGA实现其一】】

通信协议之ARP的FPGA实现其一 介绍 ARP 协议分为 ARP 请求和 ARP 应答&#xff0c;源主机发起查询目的 MAC 地址的报文称为 ARP 请求&#xff0c;目的主机响应源主机并发送包含本地 MAC 地址的报文称为 ARP 应答。当主机需要找出这个网络中的另一个主机的物理地址时&#xff0…

点击化学 ,如何用最简单的试剂叠氮化修饰后用于Click Reaction?

“点击化学”这一术语由斯克里普斯研究所的K. B. Sharpless 于2001年首次提出&#xff0c;这是一类涉及碳-杂原子间 化学键形成的反应&#xff0c;该类反应具有收率高&#xff0c;选择性好的特 点。词条“点击”意为将分子片段拼接起来就像将安全带扣 环的两部分扣起来一样简单…

大学英语四六级报名照不通过的原因

大学英语四六级报名照不通过的原因 #英语四六级 #大学英语四六级 #大学英语四六级考试 #英语四六级报名照片 #英语四六级考试报名照片

数仓建模:数仓设计中的10个陷阱

目录 0 引言 1 主要内容 1.1 过于迷恋技术&#xff0c;而没有将重点放在业务需求和目标上 1.2 没有或无法找到一个有影响的、平易近人的、明白事理的高级管理人员作为数仓建设的发起人 1.3 将项目处理为一个巨大的持续多年的项目&#xff0c;而不是追求更容易管理的、虽然…

日光辐射系统室内太阳光模拟器

太阳光模拟器能够为实验室环境提供稳定可靠的光照环境&#xff0c;其作用相当于将自然太阳光“搬进”室内实验室。这对于研究太阳能电池、光伏材料及其他与太阳能相关的设备和材料性能至关重要。 1.氙灯灯泡功率&#xff1a;≥450W&#xff1b; 2.输出光束尺寸&#xff1a;≥22…

秃姐学AI系列之:实战Kaggle比赛:图像分类(CIFAR-10)

目录 准备工作 整理数据集 将验证集从原始的训练集中拆分出来 整理测试集 使用函数 图像增广 读取数据集 定义模型 定义训练函数 训练和验证数据集 对测试集进行分类并提交结果 准备工作 首先导入竞赛需要的包和模块 import collections import math import os i…

智能优化算法-樽海鞘优化算法(SSA)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1.内容介绍 樽海鞘优化算法 (Salp Swarm Algorithm, SSA) 虽然名称中提到的是“樽海鞘”&#xff0c;但实际上这个算法是基于群体智能的一种元启发式优化算法&#xff0c;它模拟了樽海鞘&#xff08;Salps&#xff09;在海…

第67期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

Leetcode sql high frequency questions 50 (based)

high frequency SQL 50 (basic version) 高頻sql題目(Leetcode) 查詢 1757. 可回收且低脂的产品 Question 表&#xff1a;Products ---------------------- | Column Name | Type | ---------------------- | product_id | int | | low_fats | enum | | rec…

评测AI写毕业论文软件排行榜前十名的网站

在当今信息爆炸的时代&#xff0c;AI智能写作工具已经成为我们写作过程中的得力助手。特别是对于学术论文的撰写&#xff0c;这些工具不仅能够提高写作效率&#xff0c;还能帮助用户生成高质量的文稿。以下是五款值得推荐的AI智能写论文软件&#xff0c;其中特别推荐千笔-AIPas…

Mysql基础练习题 1729.求关注者的数量 (力扣)

编写解决方案&#xff0c;对于每一个用户&#xff0c;返回该用户的关注者数量。 #按 user_id 的顺序返回结果表 题目链接&#xff1a; https://leetcode.cn/problems/find-followers-count/description/ 建表插入语句&#xff1a; Create table If Not Exists Followers(us…

VMware Workstation Pro 17 下载教程(Window环境)

自从24年中旬&#xff0c;博通公司以 610 亿美元收购的 VMware 宣布对其虚拟化软件套件进行一些重大调整。Windows 和 Linux 版 VMware Workstation Pro 和 Mac 版 VMware Fusion 不再需要个人使用许可证&#xff0c;也就是对个人用户免费。 1. 下载方式 Windows 和 Linux 版…

IDEA 编译运行gradle项目

IDEA 编译运行gradle项目 本文介绍Gradle 的三种安装方式 1.IDEA 编译自动安装gradle【推荐】 2.mac brew 安装 gradle 3.手动 安装 gradle IDEA 编译gradle项目&#xff0c;之前的项目都是maven管理&#xff0c;今天遇到一个sping boot 的项目是用gradle管理的&#xff0c;下面…