选择、循环、数组

这篇博客详细介绍了编程中的选择结构,包括if、switch的语法和使用区别。接着讲解了循环结构,如while、do-while和for,以及在循环中break和continue的区别。此外,还阐述了数组的基本概念、创建、赋值和操作,如排序、求最大值和插入元素。最后,探讨了二重循环结构及其使用技巧,并分析了在二重循环中如何运用continue和break语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:选择结构(一)
1.类型
if 可以处理单一或组合条件的情况
if-else 可以处理简单的条件分支情况
多重if 可以处理连续区间的条件分支情况
if嵌套 可以处理复杂的条件分支情况
2.语法

if结构
if-else
结构

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

多重if 嵌套if

	if(条件1{					if(条件1{	
		 //代码块1					 if(条件2){
	}else if(条件2{					     //代码块1
		//代码块2					}else{
	}else{							    //代码块2	
		//代码块3				}else{								
	}							//代码块3
							}							      
3.或、与、非

作用:可使用在复杂条件下的if选择结构

如:

public class Do{
	public static void main(String[] aa){
        int score1=100;
        int score2=72;
        if((score1>98&&score2>80)||(score1==100&&score2>70)){
            System.out.println("不错!!")
        }
    }
}
二:选择结构(二)
1. switch选择结构
A.语法

switch(表达式){									
case 常量1:	(小括号中可以是intshortbytechar 、 枚举类		
	//代码块;		型  、String类型表达式)						
	break;
case 常量2:	(常量的值必须各不相同)
	//代码块;		
	break;break可以省略,但break省略后将执行所有case
defaul:				后面的代码)
	//代码块;							
	break;
}

如:


public class S5 {
	public static void main(String[] args) {
		System.out.println("请输入数字:");
		int num =1;
		switch (num) {
		case 1:
			System.out.println("爸爸的手机号码");
		case 2 :
			System.out.println("妈妈的手机号码");
		default:
			System.out.println("按键错误");
			}
	}
break省略后它的输出结果为:
    爸爸的手机号码
    妈妈的手机号码
    按键错误
B. switch与if之间的区别

​ switch:它只执行等值条件判断

​ if: 它可以执行等值条件判断,也可以执行区间条件判断

三:循环结构
1.类型

​ while、 do-while、 for

2.语法
    1.	while(条件){		2.    do{	   	3. for(初始化部分;条件;迭代){
	      //循环体			  //循环体		  //循环体	
	}			     }while(条件);	  }													
3.区别
A. 执行顺序不同
do-while 先进行循环体,再进行条件判断
while 先进行条件判断,再进行循环体
for 先进行初始化部分,再进行条件判断,然后执行循环体
B. 适应情况不同
循环次数确定 通常用while循环结构和do-while循环结构.
循环次数不确定 通常用for循环结构
4. 在循环中遇到break与continue的区别

​ break:跳出本层循环,执行循环下面的语句

​ continue:跳出本次循环,进入下一次循环

四:数组
1.数组是什么

数组就是一个变量,将相同数据类型的数据存储在内存中。

2.数组的组成元素

​ a. 标识符(也即数组名,数组名可以是任意合法的变量名,而一个数组中只有一个标识符)

​ b.数组元素(也即数据)

​ c.数组下标(即数据编号,每个数据都有一个相应的下标,但下标是从0开始的)

​ d.元素类型(即数据类型,在一个数组中,数组中的数据都是相同的数据类型)

3.数组的所有步骤
a. 声明数组

语法:数据类型[] 数组名;或者数据类型 数组名[] ;

如:int [] score;

b.给数组分配空间

语法:数组名=new 数据类型[数组长度];(数组长度也就是数据的个数,它标志着一个数组中 如: score=new int[30]; 可以容纳的最大数量,若超过了这个长度, 则称为数组越界)

也可以在声明数组的同时将给它分配空间

语法:数据类型[] 数组名=new 数据类型[数组长度];

如:int [] score=new int[30];

c.赋值

语法:数组名[下标值];

如:score[0]=89;

也可以将声明数组、分配空间和赋值合并完成

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

d.运用
import java.util.*;
public class B1 {
	public static void main(String[] args) {
		Scanner in= new Scanner(System.in);
		String[]  name=new String[5];		//声明数组名并给数据分配空间
		System.out.println("请输入五位学员的名字:");
		for(int i=0;i<name.length;i++) {
			name[i]=in.next();			//给数据循环赋值
		}
		System.out.println("第一位名字:"+name[0]);
		System.out.println("最后一位的名字:"+name[4]);
		

	}

}

4.数组排序(默认为升序)

语法:Arrays . sort(数组名);

如:

import java.util.Arrays;								//进行打包
import java.util.*;
public class B3 {
	public static void main(String[] args) {
		int[] score=new int[5];			//声明数组名并给数据分配空间
		Scanner in=new Scanner(System.in);
		System.out.println("请输入五位学员的成绩:");
		for(int i=0;i<score.length;i++) {
			score[i]=in.nextInt();			//给数据循环赋
		}
		Arrays.sort(score);		 	  //对score中的数据进行升序排序
		System.out.println("学员成绩按升序排列:");
		for(int i=0;i<score.length;i++) {
			System.out.println(score[i]+"");	//循环输出
		}
	}
5.求最大值
import java.util.*;
public class B4 {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int score[]=new int[5];
		int max=0;					//先声明最大值
		max=score[0];				//将数组中的一个数据赋值给max
		int i=0;
		System.out.println("请输入五位学员的成绩:");
		
	for(;i<score.length;i++) {
		score[i]=in.nextInt();			//循环输入数据
		if(score[i]>max) {		//将数组中的数据和最大值循环进行比较
			max=score[i];		//再将比较后得到的最大值赋值给max,即可
		}					//得到最大值
	}
	System.out.println("考试成绩最高分为"+max);	//输出最大值
	}
}
6.插入元素
import java.util.*;
public class B5 {
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		int list[]=new int[6];				//先声明长度为6的数组
		list[0]=99;							
		list[1]=85:
		list[2]=82;					//进行赋值
		list[3]=63;
		list[4]=60;
		int index=list.length;				//保存新增成绩插入位置
		System.out.println("请输入新增的成绩:");
		int num=in.nextInt();				//输入新增数据
		for(int i=0;i<list.length;i++) {				
			if(num>list[i]) {		//将新增元素与数组中的元素进行比较
				index=i;		//找到新元素的插入位置
				break;
			}
		}
		for(int j=list.length-1;j>index;j--) {		
			list[j]=list[j-1];	//再把新增元素位置下标后面的元素进行后移
		}
		list[index]=num;			//将新增元素保存到此下标的位置
		System.out.println("插入成绩的下标是:"+index);
		System.out.println("插入成绩的信息是:");
		for(int k=0;k<list.length;k++) {
			System.out.println(list[k]+"\t");	//循环输出数组中的数据
		}
	}

}
五:循环结构进阶
1.什么是二重循环结构

​ 简单来说,二重循环结构就是一个循环体内又包含了另一个完整的循环结构

2.二重循环结构类型

语法:

 whilewhile							 do-whiledo-while
 
while(循环条件1{						do{
	//循环操作1;						    //循环操作1;
	while(循环条件2{					    do{	
	//循环操作2;							//循环操作2;	
	}							   }while(循环条件2);
}						  		}while(循环条件1);
		
 forfor					whilefor
   
   for(循环条件1{				while(循环条件1{			
	 //循环操作1;					//循环操作1;			
	for(循环条件2{					for(循环条件2{			
		//循环操作2;					//循环操作2;
	}						}    
    }						}

循环条件1与 循环操作1称为外层循环,循环条件2与循环操作2称为内层循环,内层循环结束后,才执行外层循环的语句。在二重循环中,外层循环变化一次,内层循环变量要从初始值到结束值变化一遍。

3.如何使用二重循环结构
import java.util.*;
public class J1 {
	public static void main(String[] args) {
		int[] score=new int[4];				//创建score数组
		int num=3;					  //循环次数
		double sum=0.0;					
		double[] avg=new double[num];			//创建平均分数组
		Scanner in=new Scanner(System.in);
		for (int i = 0; i < num; i++) {			//外层循环控制班级的数量
			sum=0.0;
			System.out.println("请输入第"+(i+1)+"个班级的成绩:");
			for (int j = 0; j < score.length; j++) {
                					//内层循环控制每个班的参赛人数
				System.out.println("第"+(j+1)+"个学员的成绩:");
				score[j]=in.nextInt();
				sum=sum+score[j];			//成绩累加
			}
			avg[i]=sum/score.length;			//计算平均分
			System.out.println("第"+(i+1)+"个班级参赛学员的平均									分:"+avg[i]+"\n");
			
			}

		}

}
4.二重循环中continue和break语句

当continue和break语句用于内层循环时,只会影响内层循环的执行,对外层循环没有影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值