Java的选择结构,循环结构,数组

Java语言的学习

Java选择结构

在学习完变量的概念和一些常用的数据类型(主要是int、double、char、String、boolean等)之后,接下来就是介绍一下选择结构:if判断语句、if-else选择结构、多重if选择语句、嵌套if选择语句,它们都是用于区间的判断。

在生活中我们经常需要做判断,然后才能决定是否做某件事情,所以才产生了if选择结构

流程图符号汇总

在这里插入图片描述

简单的if选择语句

if判断语句

语法

if(条件){
		//代码块;
}

流程图

在这里插入图片描述

执行顺序:

先判断条件,当结果为true(真)时,程序先执行大括号里的代码块,再执行{}部分后面的代码;当结果为flase(假)时,直接执行if结构后面的代码。

if-else选择语句

语法

if(条件){
			//代码块1;
}else{
		//代码块2;
}

流程图

在这里插入图片描述

执行顺序:

先判断条件,当结果为true(真)时,程序先执行代码块1,;当结果为flase(假)时,程序执行代码块2,最后执行{}部分后面的代码。

复杂的if选择语句

当问题需要判断条件比较多,因此需要将多个条件连接起来,Java中可以使用逻辑运算符连接多个条件。常用的逻辑运算符如下表:

运算符汉语名称表达式说明举例
&&与、并且条件1 && 条件2两个条件同时为真,则结果为真;两个条件有一个为假,则结果为假具有选举权的条件:年满18周岁&&中国公民。两个条件都为真则具有选举权;有一个条件为假,则不具有选择权
||或、或者条件1 || 条件2两个条件有一个为真,则结果为真;两个条件同时为假,则结果为假从中国去美国的方式:乘飞机||乘船。两个条件有一个为真,就可以去美国;若都为假,则去不了美国
!!条件条件为真时,结果为假;条件为假时,结果为真成为优秀软件工程师的条件:!偷懒
?:三目运算条件?表达式1:表达式2条件为真时,执行表达式1;条件为假时,执行表达式2有没有过60分?及格:不及格
多重if选择语句

语句

if(条件1{
				//代码块1;
}else if(条件2{
			//代码块2;
}else{
		//代码块3;
}

流程图

在这里插入图片描述

执行顺序:

首先,程序判断条件1,如果成立,则执行代码块1,然后直接跳出这个多重if选择结构,执行它后面的代码。这种情况下,代码块2和代码块3都不会被执行。如果条件1不成立,则判断条件2,如果条件2成立,执行代码块2;如果不成立,则执行代码块3,最后跳出if选择结构。

注意:(1)else if可以有多个或没有,需要几个else if块完全取决于需要。

​ (2)else块最多有一个或没有,else块必须放在else if块之后。

嵌套if选择语句

语法

if(条件1{
					if(条件2){
									//代码块1;
					}else{
							//代码块2;
				}
}else{		
					//代码块3;
}

流程图
在这里插入图片描述
执行顺序:

程序首先判断条件1,如果条件成立,继续判断条件2,当条件2成立的时候执行代码块1,当条件2不成立时,执行代码块2,如果条件1不成立,则执行代码块3。

注意:(1)只要当满足外层if选择结构的条件时,才会判断内层if的条件。

​ (2)else总是与它前面最近的if配对。

if结构书写规范

(1)为了使if结构更加清晰,应该把每个if或else包含的代码块用大括号起来。

(2)相匹配的一对if和else应该左对齐。

(3)内层的if结构相对于外层的if结构要有一定的缩进。

switch选择结构

在switch选择结构中,switch、case、default、break都是Java的关键字。

在需要多重分支并且条件判断是等值判断的情况下,switch选择结构会更简单,代码结构会更清晰易读。

语法

switch(表达式){
				case 常量1:
								//代码块1;
								break;
				case 常量2:
								//代码块2;

								break;

				......

				default:

								//代码块3;

								break;

}

执行顺序:
先计算并获得switch后面小括号里的表达式或变量的值,然后将计算结果顺序与每一个case后面的常量比较,当二者相等时,执行这个case块中的代码;当遇到break时,就跳出switch选择结构, 执行switch选择结构之后的代码。如果没有任何一个case后的常量与switch后的小括号中的值相等,则执行switch末尾部分的default块中的代码。

注意:

在switch选择结构中的break是可以省略的,但是省略后会带来一些问题:当某个case后的常量值与switch后小括号中的值相匹配时,执行该case块的代码,后面的case就不再进行条件判断,而直接执行后面所有的case块中的代码,直到遇到break结束。所以在编写switch选择结构时不要忘记在每一个case块后加上一个"break;",用来跳出switch选择结构。

Java循环结构

使用选择结构可以解决逻辑判断的问题,但是在实际问题中,会遇到需要多次重复执行的操作,仅仅使用选择结构不容易解决,循环结构的作用就是帮助我们完成繁重的计算任务,同时它也可以使我们的代码简单化。

所有的循环结构都有这样的特点:首先,循环不是无休止进行的,满一定条件的时候循环才会继续,称为“循环条件”,循环条件不满足的时候,循环退出;其次,循环结构是反复进行相同的或类似的一系列操作,称为“循环操作”。

如下示例:

public class WhileDemo1{
    public static void main(String[] args){
        int i = 1;
        while(i <= 100){
            System.out.println("第" + i + "遍写:好好学习,天天向上!");
            i++;
        }
    }
}

这段代码的作用:输出第1~100遍好好学习,天天向上!

退出条件是循环必不可少的,如果以上代码少了i++(迭代)的话,它会一直输出一句话:第一遍写:好好学习,天天向上!这样的话,程序就成为了死循环

while循环

语法

while(循环条件){
    	//循环操作
}

流程图

在这里插入图片描述

执行顺序:

(1)声明并初始化循环变量

(2)判断循环条件是否满足,如果满足则执行循环操作;否则退出循环

(3)执行完循环操作后,再次判断循环条件,决定继续执行循环或退出循环

do-while循环

语法

do{
    //循环条件
    
}while(循环条件);

流程图

在这里插入图片描述

执行顺序:

(1)声明并初始化循环变量

(2)执行一遍循环操作

(3)判断循环条件,如果循环条件满足,则循环继续执行,否则退出循环

for循环

语法

for(表达式1;表达式2;表达式3){
    	//循环体
}

执行顺序:

在这里插入图片描述

for(int i = 0 ; i < 100 ; i++){
    System.out.println("我热爱学习!");
}

1.执行初始化部分(int i = 0 ;)

2.进行循环条件判断(i < 100 ;)

3.根据循环条件判断结果。如果为true,则执行循环体;如果为false,则退出循环,步骤4和步骤5都不执行

4.执行迭代部分,改变循环变量值(i++)

5.依次重复步骤2~步骤4,直到退出for循环结构

在此循环结构中,表达式1(int i = 0 ;)仅仅执行了一次,因为i是从0开始的,所以输出100遍"我热爱学习!"

注意:

根据for循环结构的语法,小括号中有三个表达式,在语法上,这三个表达式都可以省略,但表达式后面的分号不能省略。

在for循环中如果出现省略了表达式1的情况,则需要在for语句前给循环表量赋值;如果省略表达式2,即不判断循环条件,循环将会无终止运行,也就形成了"死循环";如果省略表达式3,即循环变量的值不会改变,也会出现"死循环"。

在编程过程中要避免"死循环"的出现,一种就是不省略表达式2,另一种方法是在循环体中使用break强制退出循环结构。

break与continue

break语句:终止某个循环,使程序跳到循环体外的下一条语句。

continue语句:跳出本次循环,进入下一次循环的语句。

continue语句可以用于for循环结构,也可以用于while和do-while循环结构。在for循环结构中,continue语句使程序先跳到迭代部分,然后判断循环条件。如果为true,则继续下一次循环;否则终止循环。在while循环结构中,continue语句执行完毕后,程序将直接判断循环条件。continue语句只能用在循环结构中。

循环结构的区别

while循环结构:先进行条件判断,再执行循环体。如果条件不成立,退出循环。

do-while循环结构:先执行循环体,再进行条件判断,循环体至少执行一次。

for循环结构:先执行初始化,再进行条件判断,然后执行循环体,最后进行迭代部分的计算。如果条件不成立,退出循环。

在解决问题时,对于循环次数确定的情况,通常选用for循环结构;对于循环次数不确定的情况,通常选用while和do-while循环结构。

Java数组操作

在Java中,数组就是一个变量,用于将相同数据类型的数据存储在内存中。数组中的每一个数据元素都属于同一数据类型。

基本要素

标识符:和变量一样,在计算机中,数组也要有一个名称,用于区分不同的数组。

数组元素:当给出了数组名称,要向数组中存放数据,这些数据就称为数组元素。

数组下标:在数组中,为了正确地得到数组的元素,需要对它们进行编号,这样计算机才能根据编号去存取,这个编号就称为数组下标。

元素类型:存储在数组中的数组元素应该是同一类型,如:int,char,String…

在这里插入图片描述

对上图,做如下说明:

1.数组只有一个名称,如apples。

2.数组元素在数组里顺序排列编号,该编号即为数组下标,它表明了元素在数组中地位置。数组规定第一个元素的编号为0,因此数组的下标依次是0,1,2,3。

3.数组中的每个元素都可以通过下标来访问。由于元素是按顺序存储的,每个元素固定对应一个下标,因此可以通过下标快速地访问到每个元素。例如:apple[0] 指数组中的第一个元素88。

4.数组的大小(长度)是数组可容纳的最大数量。定义一个数组的同时也定义了它的大小。如果数组已满但是还继续向数组中存储数据的话,程序就会报错,这被称为数组越界

使用步骤

1.声明数组

声明一维数组:

数据类型[] 数组名;
数据类型 数组名[];
2.分配空间

虽然声明了数组,但并不会为数组元素分配空间,此时还不能使用数组。因此要为数组分配内存空间,这样数组的每一个元素才能对应一个存储空间。

分配空间就是告诉计算机在内存中分配一些连续的空间来存储数据。

数组名 = new 数据类型[数组长度];
数据类型[] 数组名 = new 数据类型[数组长度];
3.赋值

分配空间后就可以向数组里放数据了,数据中的每一个元素都是通过下标来访问的。

数组名[下标值];
数据类型[] 数组名 = {1,2,3,......,值n};
4.调用数组进行数据处理
int[] apple = new int[]{1,2,3,4};
	for(int i = 0 ; i < apple.length - 1 ; i++){
		System.out.println(apple[i]);
	}

这部分代码的作用是将数组中存储的值依次输出,输出结果为:1234

总结:

数组是可以在内存中连续存储多个元素的结构,数组中所有元素必须属于相同的数据类型。

数组中的元素通过数组下标进行访问,数组的下标从0开始。

据中的每一个元素都是通过下标来访问的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值