一、二重循环
//九九乘法表【掌握了解】
// asd:
for (int i = 1; i <=9 ; i++) { //管控行数
for (int j = 1; j <=i ; j++) { //每行中,.的个数
System.out.print(i+"*"+j+"="+(i*j)+"\t");
break ;//break 退出从asd:开始到这个;
}
System.out.println();
}
}
二、switch选择结构
switch选择结构: 等值选择 60,61,62,63
if选择结构: 区间选择 60-90
[重点]switch(可以判断哪些变量类型呢?)
===byte,short,int
===char
===enum ,String
三、数组
1.什么是数组?
是一种引用类型变量,变量是容器可以存储信息。
2.为什么要学习数组?
之前的变量,一次只能存储一个信息,当数据量变大的时候,需要创建很多个普通变量,操作起来很麻烦,使用数组就轻松解决,操作麻烦的问题。处理相同大数据量的时候,更节省内存,操作更方便。
3.使用数组
(普通变量是独生子女家庭,数组是多子女家庭)
1.声明数组:数组类型 数组名;
int[ ] age;(推荐)
int age[ ];
2.分配空间:数组名=new 数组类型[空间长度];
age=new int[500];
===> int[ ] age=new int[50];
3.赋值
静态赋值:声明+分配空间+赋值
int[ ] age={12,23,34,56};
合并 ==> int[ ] age=new int[]{12,23,34,56}
动态赋值:(元素单独赋值)
age[46]=88;
默认赋值: 整数---0;小数---0.0 ;布尔---false;String ---null;char----0
例如:
package demo3.ch;
public class ch1 {
public static void main(String[] args) {
//定义数组并开辟空间
int[][] scores = new int[3][];
//数组初始化 方式1
int[] c1 = {33, 44, 55, 66, 77, 88};
//数组初始化 方式2
int[] c2 = new int[3];
c2[0] = 99;
c2[1] = 98;
c2[2] = 87;
int[] c3 = new int[2];
c3[0] = 100;
c3[1] = 90;
//存值1:
scores[0] = c1;
scores[1] = c2;
scores[2] = c3;
//存值2:
// int[][] newscores={{33,44,55,66,77,88},{99,98,87},{100,90}};
//取值:
for (int i = 0; i < scores.length; i++) {
System.out.println("第" + (i + 1) + "个班级学生成绩如下");
for (int j = 0; j < scores[i].length; j++) {
System.out.println(scores[i][j]);
}
}
}
}
四、应用数组 ”任何使用数组的地方,都离不开循环!“
(1)特点
A. 任何数据类型都可以是数组类型。
B. 元素:数组中存储的每一个信息,就是一个元素。
C. 空间长度: 分配空间的时候设定的。
----空间长度=数组名.length
D. 下标:就是序号, 只有通过下标才能获得数组里的元素。
----下标范围:0~空间长度-1
E. 数组在存值的时候,必须是按顺序的”缕头来“
F. 数组的空间长度是固定的,一旦设置,不可以更改。
(2)添加元素
1.数组空间长度够用:通过控制台输入直接添加
2.数组空间长度不够用:
方法一:创建动态数组,可以动态地增加或减少元素。
方法二:如果必须使用固定大小的二维数组,可以在长度不够用时创建一个新的更大的二维数组,并将原数组的元素复制到新数组中。
(3)查找
public static void test2(){
String[] names= {"张三","李四","王五","笑笑","娜娜"};
System.out.println("请输入你要查找的名字:");
String name=input.next();
for(int i=0;i<names.length;i++){
if(name.equals((name[i])){
boo=true;
System.out.println("存在,是第"+(i+1)+"位元素");
break;
}
}
//方案一
if(i==names.length){
System.out.println("不存在");
}
}
if(!boo){//“红绿灯”
System.out.println("不存在");
}
(4)修改
// 将数组中"菲菲"改成"飞飞"
String[] names = {"张三", "李四", "王五", "笑笑", "菲菲"};
System.out.println("请输入你要替换的名字:");
String name = sc.next();
System.out.println("请输入替换后的名字:");
String user = sc.next();
// 检查输入的名字是否为"菲菲",如果是则进行替换
if (name.equals(name)) {
boolean found = false;
for (int i = 0; i < names.length; i++) {
if (names[i].equals(name)) {
names[i] = user; // 替换名字
found = true;
}
}
if (found) {
System.out.print("修改后的数组:");
for (String n : names) {
System.out.print(n + " ");
}
} else {
System.out.println("没有找到"+name+"这个名字。");
}
}
(5)删除
1.查找是否存在
2.存在后,获得下标
3.该下标后面的元素,一次往前移
4.将最后元素赋值为null
public static void main(String[] args) {
String[] names = {"张三", "李四", "王五", "笑笑", "菲菲"};
//1.接收姓名,查找是否存在。
System.out.println("请输入要删除的元素:");
String name = sc.next();
boolean boo = false;//默认不存在
int index = 1;//记录存在元素的下标
for (int i = 0; i < names.length; i++) {
if (name.equals(names[i])) {
boo = true;//存在
index = i;//记录下标
break;
}
}
//2.元素存在,执行删除操作!
if (!boo) {
System.out.println("删除失败,元素不存在!");
} else {
int i = index;
for (; i < names.length - 1; i++) {
if (names[i] != null) {
names[i] = names[i + 1];
}
}
if (i == names.length - 1) {
names[i] = null;
}
}
//3.输出删除后的元素
System.out.println(Arrays.toString(names));
}
}
(6)排序:冒泡排序(参考DVD管理系统热门排行)
基本思想:
比较相邻元素:从列表的第一个元素开始,比较相邻的两个元素。
交换位置:如果前一个元素大于后一个元素,则交换它们的位置。
重复遍历:重复上述过程,直到没有需要交换的元素为止。
5个元素,排列4轮