Java ee 从入门到放弃 day04

idea、数组

idea项目结构

idea中HelloWorld

package cn.wang.kuaijiejian;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}

idea中内容辅助和快捷方式

package cn.wang.kuaijiejian;

/*
    快速生成语句
        快速生成main()方法:psvm,回车
        快速生成输出语句:sout,回车
    内容辅助键:Ctrl + Alt + space(内容提示,代码补全)
    快捷键
        单行注释代码:选中代码,Ctrl + /,再来一次,取消注释
        多行注释代码:选中代码,Ctrl + shift + /,再来一次,取消注释
        复制一行代码:选中代码,Ctrl + d
        删除一行代码:选中代码,Ctrl + y
        移动一行代码:选中代码,Alt + shift + 上下键
        格式化:Ctrl + Alt + L
        for循环: fori
        智能修复错误:Alt + enter
* */

public class OperatorDemo {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}

数组的定义格式

package cn.wang.arraay;

/*
* 数组定义:是一种用于存储多个相同类型数据的存储模型
*
* 格式一:数据类型[] 变量名
* 范例:   int[] arr
* 解释:定义了一个int类型的数组,数组名是arr(推荐使用格式一)
*
* 格式二:数据类型 变量名[]
  范例:   int arr[]
  解释:定义了一个int类型的变量,变量名是arr数组

  数组初始化:为数组中的数组元素分配内存空间,并为每个数组元素赋值
  方式:动态初始化
        初始化时只定义数组长度,由系统为数组分配初始值
        格式:数据类型[] 变量名 = new 数据类型[数组长度];
        范例:int[] arr = new int[3];

        静态初始化
        初始化时指定每个数组元素的的初始值,由系统决定数组长度
        格式:数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3,...}
        范例:int[] arr2 = new int[]{1,2,3}

        简化格式:数据类型[] 变量名 = {数据1,数据2,数据3,...}(推荐使用)
        范例:int[] arr2 = {1,2,3}
* */

public class ArrayDemo {
    public static void main(String[] args) {
        //动态初始化数组
        int[] arr = new int[3];
        //静态初始化数组
        int[] arr2 = new int[]{4,5,6};
        //char[] arr1 = new char[2];
        /*
            左边:
                int :说明数组中的元素类型时int类型
                []  :说明这是一个数组
                arr :这是数组名称
            右边:
                new :为数组申请内存空间
                int :说明数组中的元素类型时int类型
                []  :说明这是一个数组
                3   :数组长度,就是数组中元素的个数
         */
        //赋值
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        //arr1[0] = 'A';

        //打印输出
        System.out.println(arr);//内存地址
        System.out.println(arr[0]);//1
        System.out.println(arr[1]);//2
        System.out.println(arr[2]);//3
        System.out.println("========");
        System.out.println(arr2);//内存地址
        System.out.println(arr2[0]);//4
        System.out.println(arr2[1]);//5
        System.out.println(arr2[2]);//6
        //System.out.println(arr1);
        //System.out.println(arr1[0]);
        //System.out.println(arr1[1]);

    }
}

数组内存分配

在这里插入图片描述

package cn.wang.arraay;
/*
当多个数组指向相同
 */
public class ArrayDemo02 {
    public static void main(String[] args) {
        //数组动态初始化
        int[] arr = new int[3];
        //赋值
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        //打印输出
        System.out.println(arr);//内存地址
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        System.out.println("========");
        //定义第二个数组指向第一个数组的内存地址
        int[] arr2 = arr;
        //赋值
        arr2[0] = 4;
        arr2[1] = 5;
        arr2[2] = 6;
        System.out.println(arr);//内存地址未变
        System.out.println(arr[0]);//*值发生了变化* 4
        System.out.println("========");
        System.out.println(arr2);//内存地址未变
        System.out.println(arr2[0]);//4
        System.out.println(arr2[1]);//5
        System.out.println(arr2[2]);//6

    }
}

数组操作的两个常见问题

package cn.wang.arraay;
/*
数组中常见的两个问题
    索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题
    空指针异常:访问的数组已经不再指向堆内存的数据,超出空指针异常
    null:空值,引用数据类型的默认值,便是不指向任何有效对象
 */
public class ArrayProblem {
    public static void main(String[] args) {
        /*
        int[] arr = new int[3];
        System.out.println(arr[3]);//报错ArrayIndexOutOfBoundsException
        int[] arr1 = new int[3];
        arr1 = null;
        System.out.println(arr1[0]);//报错NullPointerException
        */
    }
}

遍历

package cn.wang.arraay;

/*
    遍历/迭代:逐个操作数组中的元素
    获取数组长度:数组名.length
    格式:数据类型 数组名 = {..........}
          for (int i = 0; i < 数组名.length; i++) {
                //对arr[i]进行操作
          }
 */
public class LengthDemo {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        System.out.println("======");
        double[] arr1 = {1.1, 1.2, 1.3};
        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i]);
        }
        System.out.println("======");
        //逆向遍历
        int[] arr2 = {1, 2, 3};
        for (int i = arr2.length-1; i >= 0; i--) {
            System.out.println(arr2[i]);
        }
    }

}

最大值

package cn.wang.arraay;

/*
 年龄最大值:利用数组,找到这些年龄人中(63,68,39,44,8,9,4,15)年龄最大的,并输出

 */

public class MaxAge {
    public static void main(String[] args) {
        //创建数组
        int[] age = {63,68,39,44,8,9,4,15};
        int max = 0;
        //遍历数组
        for (int i = 0;i < age.length;i++){
            max = max > age[i] ? max : age[i];
        }
        System.out.println("年龄最大的是:" + max);//68
    }
}

习题

第一题:分析以下需求并实现

看程序说结果,请不要提前运行
public class Test03_01 {
		public static void main(String[] args) {
			int[] arr1 = {1,2,3,4,5};
			int[] temp1 = arr1;
			int[] temp2 = arr1;
			System.out.println("通过temp1取出数组值: ");
			
			for(int i = 0;i<temp1.length;i++) {
				System.out.print(temp1[i]+" ");
			} 
			System.out.println();
			System.out.println("通过temp2取出数组值: ");
			for(int i = 0;i<temp2.length;i++) {
				System.out.print(temp2[i]+" ");
			}
			System.out.println();
			temp1[2] = 9;
			
			System.out.println("通过temp1取出数组值: ");
			for(int i = 0;i<temp1.length;i++) {
				System.out.print(temp1[i]+" ");
			}
			System.out.println();
			System.out.println("通过temp2取出数组值: ");
			for(int i = 0;i<temp2.length;i++) {
				System.out.print(temp2[i]+" ");
			}
			System.out.println();
			
		}
	}

第二题:分析以下需求并实现

看程序说结果,请不要提前运行
	public class Test03_02 {
		public static void main(String[] args) {
			int[] arr1 = {1,2,3,4,5};
			int[] arr2 = {5,6,7};
			int[] temp = arr1;
			
			System.out.println("通过temp取出arr1中的元素: ");
			
			for(int i = 0;i<temp.length;i++) {
				System.out.print(temp[i]+" ");
			}
			
			temp = arr2;
			
			System.out.println("通过temp取出arr2中的元素: ");
			
			for(int i = 0;i<temp.length;i++) {
				System.out.print(temp[i]+" ");
			}
		}
	}

第三题:

 1.定义一个长度为10的int类型数组,元素值使用随机数生成(范围为50-80)
 2.打印该数组中满足个位和十位不包含7的元素。

第四题:分析以下需求并实现

1.定义一个用于存放班级分数的数组 int[] score;数组长度为5,并使用随机数(范围为0-100)为数组赋值
2.求出班级不及格人数(分数低于60分的就是不及格)
3.求出班级的平均分
4.求出班级的总分数

昨日习题答案

第一题:分析以下需求并实现

	public class Test01 {
		public static void main(String[] args) {
			for(int x=1; x<=10; x++) {
				if(x%3==0) {
					//()在此处填写代码
				}
				System.out.println("Java基础班");
			}
		}
	}
问题:
	1.想在控制台输出2次:"Java基础班"   括号()里面应该填写什么?  break
	2.想在控制台输出7次:"Java基础班"   括号()里面应该填写什么? continue
	3.想在控制台输出13次:"Java基础班"   括号()里面应该填写什么? System.out.println("Java基础班");

第二题:分析以下需求并实现

1.打印1到100之内的整数,但数字中包含9的要跳过
2.每行输出5个满足条件的数,之间用空格分隔
3.如:1 2 3 4 5
public class Demo03 {
		public static void main(String[] args) {
			int i = 0;
			for(int x=1; x<=100; x++) {				
				int k = x % 10;
				int j = x / 10 % 10;
				if(k==9 || j==9){
					continue;
				}else{
					i++;
					System.out.print(x + " ");
					if(i % 5 == 0){
						System.out.println();
					}
				}	
			}
		}
	}

第三题:分析以下需求,并用代码实现:

1.按照从大到小的顺序输出四位数中的个位+百位=十位+千位 的数字及个数
2.每行输出5个满足条件的数,之间用空格分隔
3.如:9999 9988 9977 9966 9955
	public class Demo04 {
		public static void main(String[] args) {
			int i = 0;
			for(int x=9999; x>=1000; x--) {	
				int a = x % 10;//个位
				int b = x / 10 % 10;//十位
				int c = x / 100 % 10;//百位
				int d = x / 1000;//千位
				int e = a + c;
				int f = b + d;
				if(e == f){
					i++;
					System.out.print(x + " ");
					if(i % 5 == 0){
						System.out.println();
					}
				}
				System.out.println("个数:" +i);	
			}
		}
	}
	

第五题:

打印四行五列的星星
  *****
  *****
  *****
  *****
public class Demo05 {
		public static void main(String[] args) {
			int i = 0;
			for(int x=0; x<20; x++)
			{
					i++;
					System.out.print("*");
					if(i % 5 == 0){
						System.out.println();
					}	
			}
		}
	}

ps:idea的安装和模块操作请自行百度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值