博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java数组基础知识巩固
阅读量:5865 次
发布时间:2019-06-19

本文共 5695 字,大约阅读时间需要 18 分钟。

一、数组练习:

1.使用两种方式定义一个整形的一维数组,获取数组中的值,为数组中的元素赋值,遍历一维数组

  • 代码:
class SingleDimensionArray {	public static void main(String[] args) {		int[] arr1 = new int[3];//动态方法定义int类型数组		arr1[0] = 1;		arr1[1] = 2;		arr1[2] = 3;		for (int i = 0 ; i < arr1.length ; i ++ ) {			System.out.print(arr1[i] + " ");		}		System.out.println();		int[] arr2 = {1,2,3};//静态方法定义int类型数组		for (int j = 0 ; j < arr2.length ; j ++ ) {			System.out.print(arr2[j] + " ");		}	}}复制代码
  • 运行结果

2.使用静态初始化定义一个整形的二维数组,获取数组中的值,为数组中的元素赋值,遍历二维数组

  • 代码:
class TwoDimensionArrayDemo {	public static void main(String[] args) {		//静态定义二维数组		int[][] arrDimensionArray = {
{1,23,223},{232,6767,23,96},{1},{12,0},{1,9,65}}; for (int i = 0 ; i < arrDimensionArray.length ; i ++ ) { for (int j = 0 ; j < arrDimensionArray[i].length ; j ++ ) { System.out.print(arrDimensionArray[i][j] + " "); } System.out.println();//每个一维数组遍历完后换行 } }}复制代码
  • 运行结果:

3.要统计一个公司三个销售小组中每个小组的总销售额以及整个公司的销售额

如下所示: 第一小组销售额为{11, 12}万元 第二小组销售额为{21, 22, 23}万元 第三小组销售额为{31, 32, 33, 34}万元

  • 代码:
class SaleStatistics {	public static void main(String[] args) {		int[][] groupSale = {
{11,12},{21,22,23},{31,32,33,34}}; int saleSum = 0;//初始化公司总销售额 for (int i = 0 ; i < groupSale.length ; i ++ ) { int groupSum = 0;//初始化各组销售总额 for (int j = 0 ; j < groupSale[i].length ; j ++ ) { groupSum += groupSale[i][j];//计数器,计算各组总销售额 } System.out.println("第 " + (i + 1) + " 小组的销售额: " + groupSum + " 万元"); saleSum += groupSum;//计数器,计算公司总销售额 } System.out.println("公司总销售额: " + saleSum + " 万元"); }}复制代码
  • 运行结果:

4.随机点名器案例

  • 代码:
/*随机点名器:	1.随机抽出3个女英雄进行点名	1.存储所有Dota女英雄姓名	2.预览所有英雄的姓名	3.随机出一个女英雄的姓名*/import java.util.Random;class RollCall {	public static void main(String[] args) {		String[] names = {
"黑暗游侠","秀逗魔导师","月之女祭司","幻影刺客","水晶室女","魅惑魔女","月之骑士","痛苦女王","风行者","蛇发魔女","娜迦海妖","幽鬼","复仇之魂","圣堂刺客","仙女龙","死亡先知","育母蜘蛛"}; for (int i = 0 ; i < names.length ; i ++ ) { System.out.print(names[i] + " "); } Random ran = new Random(); System.out.println(); System.out.println("------------------------------------------------------------------"); System.out.println("Dota中共 " + (names.length + 1) + " 名女英雄,开始点名:"); for (int j = 1 ; j <= 3 ; j ++ ) { int index = ran.nextInt(names.length); System.out.println("第 " + j + " 个: " + names[index]); } }}复制代码
  • 运行结果:

二、加强练习:

1.分析以下需求,并用代码实现:

  • 员工的工龄和基本工资通过键盘录入
  • 例如: 用户输入的工龄为10,基本工资为3000, 如果工龄大于等于10年 并且 工龄小于15年 基本工资涨5000;程序运行后打印格式"您目前工作了10年,基本工资为 3000元, 应涨工资 5000元,涨后工资 8000元" (线索:员工的工龄和基本工资,涨后工资都是一个变量,对工龄进行if判断)
  • 完成工龄在以下区间范围内,涨不同的工资,打印格式同上 [0,1) +200 [1,3) +500 [3,5) +1000 [5,10) +2500 [10,15) +5000 [15,正无穷) +10000 (线索:基本工资和涨后工资是一个变量,用if..else判断工龄所在区间,如果满足,基本工资变量加涨的钱赋值给涨后工资)
  • 代码:
import java.util.Scanner;class SalaryIncreaseRule {	public static void main(String[] args) {		Scanner sc = new Scanner(System.in);		int seniority = sc.nextInt();//输入工龄		int basicWageregularPay = sc.nextInt();//输入基本工资		int salary;		if (seniority >= 0 && seniority < 1) {			salary = basicWageregularPay + 200;		}else if (seniority < 3) {			salary = basicWageregularPay + 500;		}else if (seniority < 5) {			salary = basicWageregularPay + 1000;		}else if (seniority < 10) {			salary = basicWageregularPay + 2500;		}else if (seniority < 15) {			salary = basicWageregularPay + 5000;		}else{			salary = basicWageregularPay + 10000;		}		System.out.println("您目前工作了 " + seniority + " 年,基本工资为 " + basicWageregularPay + " 元, " +"应涨工资 " + (salary-basicWageregularPay) + " 元,涨后工资 " + salary + " 元");			}}复制代码
  • 运行结果:

2.看程序,分析下面程序的结果:

  • 代码:
int x = 2,y=3;switch(x) {default:   y++;case 3:   y++;break;case 4:   y++;}System.out.println("y="+y);复制代码
  • 输出结果: y=5

3.分析以下需求,并用代码实现:

a.键盘录入两个整数,求这两个数中最大的数和最小的数

(线索:用两个变量max,min,max和min都存储第一个数,第二个数与max比较如果大于max,覆盖掉max值;第二个数与min比较如果小于min,覆盖掉min的值)

  • 代码:
import java.util.Scanner;class JudgeMaxOrMix {	public static void main(String[] args) {		Scanner sc = new Scanner(System.in);		System.out.println("请输入第一个数:");		int max = sc.nextInt();		int min = max;		System.out.println("请输入第二个数:");		int secondNum = sc.nextInt();		if (secondNum < min) {			min = secondNum;		}else if (secondNum >= max) {			max = secondNum;		}		System.out.println("min= "+min + " ,max= " + max);	}}复制代码
  • 运行结果:

b.定义一个长度为5的整形数组,为数组中的5个元素赋值,求出数组中最大的数和最小的数

(线索:用两个变量max,min,max和min都存储第一个数组的元素,从数组第二个元素开始,与max比较如果大于max,覆盖掉max值;与min比较如果小于min,覆盖掉min值)

  • 代码:
class ArrayMaxOrMin {	public static void main(String[] args) {		int[] arr = {3,8,10,1,2};//静态定义数组		int max = arr[0];		int min = arr[0];		for (int i = 1; i < arr.length ; i ++ ) {			if (arr[i] > max) {				max = arr[i];			}else if (arr[i] < min) {				min = arr[i];			}					}		System.out.println("max= " + max + " ,min= " + min);	}}复制代码
  • 运行结果:

c.将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组

(线索:在b)需求中,不但需要用min和max记录最小值和最大值,还需要两个变量minIndex和maxIndex分别来记录最小值和最大值的索引,然后利用索引来按需求交换两数交换可以尝试使用第三个变量完成)

例如:int[] arr={3,8,10,1,2} 最终数组的结果: arr={1,8,2,3,10}

  • 代码:
class SwapPermutation {	public static void main(String[] args) {		int[] arr = {3,8,10,1,2};//静态数组		int max = arr[0];//将数组第一个数赋值到max中		int min = arr[0];//将数组第一个数赋值到min中		int maxIndex = 0,minIndex = 0;//初始化最大值索引,最小值索引		for (int i = 1 ; i < arr.length ; i ++ ) {//遍历数组			if (arr[i] > max) {				max = arr[i];//找出最大值				maxIndex = i;//把最大值的索引赋值给maxIndex			}else if (arr[i] < min) {				min = arr[i];//找出最小值				minIndex = i;//把最小值的索引赋值给minIndex			}		}		int temp1 = arr[0];//将数组的第一个数赋值给临时变量temp1		int temp2 = arr[arr.length-1];//强数组的第二个数赋值给临时变量temp2		arr[0] = arr[minIndex];//将数组最小值赋值给数组的第一个数		arr[arr.length-1] = arr[maxIndex];//将数组中最大的书赋值给数组的最后一个数		arr[minIndex] = temp1;//交换最小值与数组第一个数		arr[maxIndex] = temp2;//交换最大值与数组最后一个数		for (int j = 0 ; j < arr.length ; j ++ ) {//遍历新数组			System.out.print(arr[j] + " ");//输出		}	}}复制代码
  • 运行结果:

转载于:https://juejin.im/post/5a34e6c0f265da43163d241f

你可能感兴趣的文章
Atitit jOrgChart的使用 组织架构图css html
查看>>
mysql 安全
查看>>
Atitit.研发团队的管理原则---立长不立贤与按资排辈原则
查看>>
Java Web 工作技巧总结 16.10
查看>>
shell的编程结构体(函数、条件结构、循环结构)
查看>>
OEA 中 WPF 树型表格整体重构
查看>>
Lazarus如何变成XE的界面
查看>>
如何判断一个变量是数组Array类型
查看>>
ie7,ie6兼容性总结
查看>>
锤子M1L评测:硬件配置全“满血”,操作系统继续出众
查看>>
猪年生肖特展亮相上海科技馆
查看>>
教育部:加强高校实验室安全检查 确保师生安全
查看>>
韩国瑜上任满月人气依旧 重视两岸交流令高雄受益
查看>>
港府将资助电竞业雇主招实习生 每人每月最多7500港元
查看>>
电影《差等生乔曦》首映 导演分享教育心得
查看>>
云南省首批3959支九价HPV疫苗到货 首针已完成接种
查看>>
高雄市长韩国瑜进行春节安全劳动检查 维护施工安全
查看>>
乌克兰基辅一世遗修道院起火 现场火光照亮夜空
查看>>
Python3 基本数据类型,带你进一步了解Python3的基础知识
查看>>
氪星晚报丨苹果考虑降低某些国家iPhone售价提振销量;VIPKID回应融资传闻:不予置评;蔚来拟发行6.5亿美元可转债...
查看>>