Java中的选择结构、循环结构与数组

Java中的选择结构、循环结构与数组

一:选择结构

1、if选择结构

(1)为什么需要if选择结构:

​ 在生活中我们经常面临判断,然而是否决定做这件事。那么这个时候我们就可以使用if选择结构来实现。

(2)什么是if选择结构:

​ if选择结构是根据条件判断之后再做处理的一种语法结构。

(3)如何使用if选择结构:

​ 1、使用基本的if选择结构:可以处理单一或组合条件的情况,例如通过成绩的高低来进行奖罚。

​ 最基本的if选择结构语法:

if(条件){
		代码块
}

​ 关键字if后小括号里的条件是一个表达式,而且表达式的值必须为true或false。程序执行时,先判断条件。当结果为true时,程序先执行大括号里的代码块,再执行if结构后面的代码。当结果为false时,不执行大括号里的代码块,而直接执行if结构后面的代码。

举例:判断Java成绩

if(score>60){

System.out.println("成绩合格!");

}

注:if括号里面的条件是一个表达式,而且表达式的值必须为真或假!

​ 语法流程图如下所示:
在这里插入图片描述

2、使用if-else选择结构:可以处理简单的条件分支情况,例如判断该成绩是否满足条件。

​ if-else选择结构语法:

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

​ 与之前的if结构语法不同,if-else选择结构除了要实现条件成立执行的操作外,还要实现条件不成立时执行的操作。它的意思就好比如是“如果cc,就cc;否则,就jj”。

​ 举例:Java成绩的判断

if(score>60{
	System.out.println("成绩合格!");
}else{
	System.out.println("成绩不合格,补考!");
}

​ 语法流程图如下:
在这里插入图片描述
​ 3、多重if选择结构:可以处理连续区间的条件分支情况,例如判断该成绩处于哪个水平阶段。

​ 多重if现在结构语法:

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


​ 开始程序判断条件1,如果成立,则执行代码块1,然后直接跳出这个多重if选择结构,执行他后面的代码。如果条件1不成立,则判断条件2,若成立则执行代码块2;反之,执行代码块3.其中,else if块可以有多个或没有,需要几个取决于需要。

​ 举例:Java成绩的评估:

if(score>=80){    

	System.out.println("良好");

}else if(score>=60){    

 	System.out.println("中等");

}else{    

     System.out.println("差");

}	

​ 语法流程图如下:
在这里插入图片描述

4、嵌套if选择结构:就是在if选择结构里面再嵌入if选择结构,可以处理复杂的条件分支情况。

​ 嵌套if选择结构语法:

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

​ 只有当满足外层if选择结构的条件时,才会判断内层if的条件。else总是与它面前最近的那个缺少else的if配对。为了使if结构更加清晰,应该把每个if或else包含的代码块用大括号括起来。相匹配的一对if和else应该左对齐。内层的if结构相对于外层的if结构要有一定的缩进。

​ 举例:Java成绩的判断

if(score>85){

	System.out.println("成绩优秀!");

}else if (score>60){

	System.out.println("成绩合格!");

}else{

	System.out.println("成绩不合格! ");

}

语法流程图如下:

在这里插入图片描述

2、switch选择结构

(1)为什么使用switch选择结构:

​ 使用switch选择结构代替多吃if选择结构会更简单,代码更清晰易读;switch选择结构可以更好的解决等值判断问题。

(2)什么是switch选择结构:

​ 多重分支结构并且条件判断为等值判断。

(3)如何使用switch选择结构:

​ switch选择结构的条件只能是等值的判断,而且只能是整型或字符型的等值判断。

​ switch选择结构的语法:

switch(变量名){
	case 1 :
		//代码块1
		break;
	case 2 :
		//代码块2
		break;
	..........
	case n :
		//代码块n
		break;
	default:
	//代码块
	break;
}

注:break语句用于终止switch语句中的某个分支,是程序调到switch选择结构的下一条语句。

二:循环结构

1、循环结构

(1)为什么需要循环结构

​ 但我们执行一件事情而且需要重复的执行这件事是就可以用循环结构来帮我们解决问题。

(2)什么是循环结构

​ 循环结构由循环条件和循环操作构成,只要满足循环条件,循环操作就会反复执行。(循环结构通俗的来讲就是在什么条件成立是不断的做什么件事情。)

(3)循环结构的优点

​ 循环结构可以解决我们Java中比较繁琐事情,同时也提高了我们的运用能力和逻辑思维!

2、while与do-while循环结构

1、while循环结构:while循环结构先判断,在执行。如果第一次判断条件就不满足,则直接跳出循环。反之就继续就执行循环操作,直至条件不满足,跳出循环。

​ while循环结构的语法:

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

​ 举例:输出100遍“好好学习!”

int i  = 1;
while(i<=100){
	System.out.println("好好学习!");
	i =  i+1;
}

​ 语法流程图如下:

在这里插入图片描述

2、do-while循环结构:do-while循环先执行,在判断。先执行一遍循环操作,再判断循环条件,如果循环条件满足,则继续执行,否则退出循环。

​ do-while循环结构的语法:

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

注:do-while循环结构循环体至少执行一次!

​ 举例:输出100遍“好好学习!”

int i = 1;
do{
	System.out.println("好好学习!");
	i++;
}while(i<=100);

​ 语法流程图如下:

在这里插入图片描述

3、程序调试

​ 当程序存在错误的时候,我们需要专门的技术来发现和定位错误,这个技术就是“程序调试”。满足暂停程序、观察变量和逐条执行语句等功能的工具和方法总称为程序调试。

​ 如何进行程序调试

1、分析错误,设置断点:在想设置断点的代码行左侧边栏双击,就会出现一个圆形的断点标记,再次双击,断点即可取消。

2、启动调试,单步执行:设置好断点后,就可以单击“启动调试”按钮,即可开始调试。

4、for循环结构

1、for循环结构: for循环结构分为初始部分,循环体,迭代部分,循环条件四部分。

​ for循环结构语法:

for(表达式1;表达式2;表达式3{

//循环体

}

​ 举例:输出100遍“好好学习,天天向上!”

public class CGT{
	public static void main(String[] ages){
		for(int i = 0; i < 100; i++){
			System.out.println("好好学习,天天向上!");
		}
	}
}

​ for循环结构三个表达式的含义:

表达式形式功能举例
表达式1赋值语句循环结构的初始部分,为循环变量赋初值int i = 0
表达式2条件语句循环结构的循环条件i < 100
表达式3赋值语句,通常使用++或–运算符循环结构的迭代部分,通常用来修改循环变量的值i++

for循环结构语法的流程图:

在这里插入图片描述

​ 初始部分:设置循环的初始状态,如设置记录循环次数的变量i为0。

​ 循环体:重复执行的代码。

​ 迭代部分:下一次循环开始前要执行的部分,在while循环结构中它作为循环体的一部分。

​ 循环条件:判断是否循环的条件,如使用“i<100”判断次数是否已经达到100。

5、循环结构的进阶

**1、二重循环:**二重循环就是一个循环体内又包含另一个完整的循环结构。

//while与while嵌套

while(循环条件1){   

	//循环操作1    

	while(循环条件2){       

		//循环操作2;  

 	}

}
//do-while与do-while循环嵌套
do{
    //循环操作1
    do{
        //循环操作2;
    }while(循环条件2);
}while(循环条件1);
//for与for循环嵌套
for(循环条件1){
     //循环操作1
    for(循环条件2){
         //循环操作2
    }
}
//while与for循环嵌套
for(循环条件1){
     //循环操作1
     for(循环条件2){
         //循环操作2
    }
}

​ 上面四种形式中,循环条件和循环操作对应的循环称为外层循环,循环条件2和循环操作2对应的循环称为内层循环,内层循环结束后才执行外层循环的语句。在二重循环中,外层循环变量变化一次,内层循环变量要从初始值到结束值变化一遍。

注:在二重循环中,continue为跳出当层的一次循环,进入当层的下一次循环,而break为结束当层循环体。

6、break语句与continue语句的使用

1、break语句的使用

for(int i = 0;i<10;i++){
    //跑4圈
    if(放弃){
        break;		//退出比赛
    }
}

​ break语句用于终止某个循环,使程序跳转到循环体外的下一条语句。在循环中位于break后的语句将不再执行,循环也停止执行。

​ break语句不仅可以用在for循环结构中,也可以用在while和do-while循环结构中。break语句通常与if条件语句一起使用。

2、continue语句的使用

for(int i = 0;i<10;i++){
    //跑4圈
    if(不放弃){
        continue;		//继续跑
    }
    //退出比赛
}

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

三:数组

1、什么是数组

1、数组的含义:数组就是一个变量,用于将相同数据类型的数据存储在内存中,同样,数组就是在内存空间划出一串的空间

2、数组的基本要素

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

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

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

​ 元素类型:存储在数组中的数组元素应该是同一数据类型。

注意事项

​ 数组只有一个名称,即标识符,如scores。

​ 数组元素在数组里顺序排列编号,该编号即为数组下标,塔标明了元素在数组中的位置。第一个元素的编号规定为0,因此数组的下标从0依次类推到数组的最大的长度。

​ 数组中的每个元素都可以通过下标快速来访问。由于元素是按顺序存储的,每个元素固定对应一个下标,因此可以通过下标快速访问到每个元素。

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

2、数组的使用

(1)声明数组

数据类型[] 数组名; 或者 数据类型 数组名[];

int[] scores;

(2)分配空间

数组名 = new 数据类型[数组长度]

scores = new int[30];

(3)赋值

数组名[下标值]

scores[0] = 89;
scores[1] = 60;
scores[2] = 70;

数据类型[] 数组名 = {值1,值2,值3,…,值n};

int[] scores = {60,70,98,90,76};
int[] scores = new int[]{60,70,98,90,76};

(4)对数据的处理

​ 如果定义的数组是基本数据类型的数组,即int、double、char和boolean类型,在java中定义数组后,若没有指定初始值,则依数据类型的不同,会给数据元素赋一个默认值。如下所示:

数据类型初始值
int0
double0.0
char‘\u0000’
booleanfalse

3、数组的应用

(1)数组排序

Arrays.sort(scores)//对数组进行排序

​ Arrays是java中提供的一个类,而sort()是该类的一个方法。按照这个语法,即将数组名放在sort()的括号中,就可以完成对该数组的排序。因此,这个方法执行后,数组中的元素已经有序了。

​ 求数组最大值

max = scores[0];
for(int i = 0;i<scores.length;i++){
    if( max < scores[i]){
        max = scores[i];
    }
}

​ 求数组最小值

min = scores[0];
for(int i = 0;i<scores.length;i++){
    if( min > scores[i]){
        min = scores[i];
    }
}

​ 这是一个循环的过程,max(min)变量依次与数组中的元素 进行比较。如果max小于(min大于)比较的元素,则执行置换操作。如果max较大(min较小),则不执行操作。因此,采用循环的方式来写代码会大大简化代码量,提高程序效率

(2)向数组中插入元素

int index = scores.length;
System.out.prtintln("请输入新增成绩:")
Scanner in = new Scanner(System.in);
int num = in.nextInt;//输入插入的数据
for(int i = 0;i<scores.length;i++){
    if(num>scores[i]){
        inedx = i;
        break;			
    }
}
//元素后移
for(int j = scores.length-1;j>index;j--){
    scores[j] = scores[j-1];//index下标开始的元素后移一个位置
}
scores[index] = num;//插入数据

四:总结

​ 通过学习Java中的选择结构、循环结构与数组后,更加巩固了我的Java基础语法,也开阔了我的视野。同时也更顺速和准确的解决了我在Java中学带来的困惑,最重要的就是提高了我的逻辑思维能力和增强解决问题的能力!

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值