数组的结构和基本要素
1.标识符:数组的名称,用于区分不同的数组
2.数组元素:向数组中存放的数据
3.元素下标:对数组元素进行编号,从0开始
4.元素类型:数组元素的数据类型
数组只有一个名称,即标识符
使用数组能够解决变量解决不了的问题
创建的步骤
1.声明数组
int[] number ;
2.分配空间
number = new int[5];
3.赋值
number[0] = 1;
4.处理数据
number[0] = number[0] * 1;
真题案例
1.循环输出数列的值 求数列中所有数值的和 求数列中所有数值的和
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
int[] number = {8,4,2,1,23,344,12};
//1.循环输出数列的值
Scanner input = new Scanner(System.in);
int sum = 0;
for (int i = 0; i < number.length; i++) {
System.out.println("数列的值为:"+number[i]);
sum += number[i];
}
//2.求数列中所有数值的和
System.out.println("所有数值的和为"+sum);
//3.从键盘中任意输出一个数据,判断数列中是否包含次数
System.out.println("请输入一个数值:");
int num = input.nextInt();
//定义一个变量,如果该变量等于该次循环的值,则flag自增
//最后 如果flag不等于0,说明数列中包含此数,反之则不包含
int flag = 0;
for (int i = 0; i < number.length; i++) {
if (flag==number[i]){
flag++;
}
}
if (flag!=0){
System.out.println("数列中包含此数");
}else {
System.out.println("数列中不包含此数");
}
}
}
结果如图所示
数列的值为:8
数列的值为:4
数列的值为:2
数列的值为:1
数列的值为:23
数列的值为:344
数列的值为:12
所有数值的和为394
请输入一个数值:
3
数列中不包含此数
2.对数组中的内容进行遍历输出
public class Demo02 {
public static void main(String[] args) {
String[] goods = {"Nike背包","Adisas运动衫","李宁运动鞋","kappa外套","361°腰包"};
System.out.println("本次活动特价商品有");
for (int i = 0; i < goods.length; i++) {
System.out.println(goods[i]);
}
}
}
效果如图所示:
本次活动特价商品有
Nike背包
Adisas运动衫
李宁运动鞋
kappa外套
361°腰包
3.输出5笔购物金额和总金额
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
// amountShop
Scanner input = new Scanner(System.in);
//定义一个数组,并赋予长度
double[] back = new double[5];
//总金额
double money = 0;
for (int i = 1; i <= 5; i++) {
System.out.println("请输入第"+i+"笔购物金额:");
double num = input.nextDouble();
//back[i-1]=num;将获取的内容存到数组里
back[i-1]=num;
}
System.out.println("序号\t\t"+"金额(元)");
for (int i = 0; i < back.length; i++) {
System.out.println(i+1+"\t\t\t"+back[i]);
money+=back[i];
}
System.out.println("总金额\t\t"+money);
}
}
效果如图所示:
请输入第1笔购物金额:
123.6
请输入第2笔购物金额:
45.7
请输入第3笔购物金额:
325.7
请输入第4笔购物金额:
99.0
请输入第5笔购物金额:
128.0
序号 金额(元)
1 123.6
2 45.7
3 325.7
4 99.0
5 128.0
总金额 722.0
4.字符串升序排列,降序排列
public class Demo10 {
public static void main(String[] args) {
//单个字符用char
char[] character = {'a','c','u','b','e','p','f','z'};
//原字符序列
System.out.print("原字符序列:");
for (int i = 0; i < character.length; i++) {
System.out.print(character[i]+" ");
}
//升序排序后
System.out.print("\n升序排序后:");
for (int i = 0; i < character.length-1; i++) {
for (int j = 0; j < character.length-1-i; j++) {
if (character[j]>character[j+1]){
char temp01 = character[j];
character[j] = character[j+1];
character[j+1] = temp01;
}
}
//System.out.print(character[i]+" ");
}
for (int i = 0; i < character.length; i++) {
System.out.print(character[i]+" ");
}
//逆序排序后
System.out.print("\n逆序排序后:");
for (int i = 0; i < character.length-1; i++) {
for (int j = 0; j < character.length-1-i; j++) {
if (character[j]<character[j+1]){
char temp02 = character[j];
character[j] = character[j+1];
character[j+1] = temp02;
}
}
}
for (int i = 0; i < character.length; i++) {
System.out.print(character[i]+" ");
}
}
}
效果如图所示:
原字符序列:a c u b e p f z
升序排序后:a b c e f p u z
逆序排序后:z u p f e c b a
5.获取4家店的价格并进行(倒叙)冒泡排列 取最小值
import java.util.Scanner;
public class Demo11 {
public static void main(String[] args) {
System.out.println("请输入4家店的价格");
Scanner input = new Scanner(System.in);
int[] price = new int[4];
//获取4家店的价格
for (int i = 1; i <=4 ; i++) {
System.out.println("第"+i+"店的价格:");
int num = input.nextInt();
//将用户输入的内容存到数组里
price[i-1] = num;
}
//获取4家店的价格并进行(倒叙)冒泡排列 取第一个数值
for (int i = 0; i < price.length-1; i++) {
for (int j = 0; j < price.length-1-i; j++) {
if (price[j]>price[j+1]){
int temp = price[j];
price[j] = price[j+1];
price[j+1] = temp;
}
}
}
System.out.println("最低价格是"+price[0]);
}
}
效果如图所示:
请输入4家店的价格
第1店的价格:
2800
第2店的价格:
2900
第3店的价格:
2750
第4店的价格:
3100
最低价格是2750
6.用数组录入并输出会员积分
import java.util.Scanner;
public class Demo12 {
public static void main(String[] args) {
System.out.println("请输入5位会员的积分");
Scanner input = new Scanner(System.in);
//定义一个数组,并赋予长度
int[] price = new int[5];
int num = 0;
for (int i = 1; i <=5 ; i++) {
System.out.println("第"+i+"位会员的积分:");
num = input.nextInt();
//price[i-1] = num;将获取的内容存到数组里
price[i-1] = num;
}
System.out.println("序号\t历史积分\t\t新年积分");
for (int i = 0; i < price.length; i++) {
System.out.println((i+1)+"\t\t\t"+price[i]+"\t\t\t"+(price[i]+500));
}
}
}
效果如图所示:
请输入5位会员的积分
第1位会员的积分: 1859
第2位会员的积分: 235
第3位会员的积分: 468
第4位会员的积分: 452
第5位会员的积分: 23
序号 历史积分 新年积分
1 1859 2359
2 235 735
3 468 968
4 452 952
5 23 523