java学习之路 之 面向对象编程-面向对象-数组练习题(1)

public class ArrayTest {
	//运用数组打印输出10-50
	public static void main(String[] args) {
		int[] arr = new int[5]; // 有效下标是0~长度-1 
		arr[0] = 10;
		arr[1] = 20;
		arr[2] = 30;
		arr[3] = 40;
		arr[4] = 50;
		//arr[5] = 60; 下标不可以越界
		//arr[-1] = 5;
		for (int i = 0; i < 5; i++) {
			System.out.println(arr[i]);
		}
	}
}

class ArrayTest2 {
	//运用数组打印输出10-50
	public static void main(String[] args) {
		int[] arr = new int[5]; // 有效下标是0~长度-1 
		for (int i = 0; i < 5; i++) { // 数组和循环是在一起
			// 0~4
			arr[i] = (i + 1) * 10;
		}	
		// 数组的遍历(迭代)
		for (int i = 0; i < 5; i++) {
			System.out.println(arr[i]);
		}
	}
}

class Exer1 {
	public static void main(String[] args) {
		// 创建一个数组, 保存10个奇数, 遍历数组打印输出
		int[] arr = new int[10];
		for (int i = 0; i < 10; i++) {
			arr[i] = 2 * i + 1;
		}
		// 遍历数组
		for (int i = 0; i < 10; i++) {
			System.out.println(arr[i]);
		}
	}
}

class ArrayTest3 {
//打印10 20 30 40 50
	public static void main(String[] args) {
		int[] arr = new int[5]; // 数组对象一旦创建,长度就是固定的,不可改变
		System.out.println("数组长度:" + arr.length);
		//arr.length = 10; arr.length是一个常量, 固定不变
		
		for (int i = 0; i < arr.length; i++) { // 数组和循环是在一起
			// 0~4
			arr[i] = (i + 1) * 10;
		}		
		// 数组的遍历(迭代)
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
	}
}

class ArrayTest4 {
//打印A-Z 26个英文字母
	public static void main(String[] args) {
		char[] chArr = new char[26];
		for (int i = 0; i < chArr.length; i++) {
			chArr[i] = (char)('A' + i);
		}
		// 遍历
		for (int i = 0; i < chArr.length; i++) {
			System.out.print(chArr[i] + " ");
		}
		System.out.println();
	}
}

class Exer2 {
	// 创建6个元素的数组, 保存你的生日和今天的日期,最后打印输出.
	public static void main(String[] args) {
		int[] arr = new int[6]; // 1994-1-23 2016-7-27
		arr[3] = 1994; 
		arr[4] = 1;
		arr[5] = 23;
		arr[0] = 2016;
		arr[1] = 7;
		arr[2] = 27;
		System.out.println("生日:" + arr[3] + "年" + arr[4] + "月" + arr[5] + "日");
		System.out.println("今天:" + arr[0] + "年" + arr[1] + "月" + arr[2] + "日");
	}
}

class Exer3 {
	// 创建26个元素的字符数组, 保存26个小写字母, 遍历打印输出
	public static void main(String[] args) {
		char[] chArr = new char[26];
		for (int i = 0; i < chArr.length; i++) {
			chArr[i] = (char)('a' + i);
		}
		// 遍历
		for (int i = 0; i < chArr.length; i++) {
			System.out.print(chArr[i] + " ");
		}
		System.out.println();
	}
}

class Exer4 {
	// 创建36个元素的字符数组, 前26个保存小写字母,后10个保存10个数字字符
	public static void main(String[] args) {
		char[] chArr = new char[36];
		for (int i = 0; i < 26; i++) {
			chArr[i] = (char)('a' + i);
		}
		for (int i = 26; i < chArr.length; i++) {
			chArr[i] = (char)('0' + i - 26);
		}
		// 遍历
		for (int i = 0; i < chArr.length; i++) {
			System.out.print(chArr[i] + " ");
		}
		System.out.println();
	}
}

class Exer42 {
	// 创建36个元素的字符数组, 前26个保存小写字母,后10个保存10个数字字符
	public static void main(String[] args) {
		char[] chArr = new char[36];
		for (int i = 0; i < 26; i++) {
			chArr[i] = (char)('a' + i);
		}
		for (int i = 0; i < 10; i++) {
			chArr[26 + i] = (char)('0' + i);
		}
		// 遍历
		for (int i = 0; i < chArr.length; i++) {
			System.out.print(chArr[i] + " ");
		}
		System.out.println();
	}
}

class ArrayTest5 {
	//静态初始化的练习
	public static void main(String[] args) {
		int[] arr1 = new int[]{9, 2, 1, 3, 8}; // 静态初始化, 比较灵活, 声明和初始化可以分开
		int[] arr2 = {1, 2, 0, 9, 3}; // 写法固定, 只适用于数组的声明和创建在同一行.
		int[] arr3;
		//arr3 = {3, 4, 5};
		arr3 = new int[]{3, 4, 5};	
	}
}

class ArrayTest6 {
	public static void main(String[] args) {
		// 创建引用数组, 数组元素中只能保存地址, 但是地址可以指向对象, 所以也可以称为对象数组
		MyDate[] arr = new MyDate[5]; // 此时并没有MyDate对象产生, 数组中都是空洞
		arr[0] = new MyDate(1980, 1, 1);
		arr[4] = new MyDate(2011, 5, 8);
		arr[1] = new MyDate(1990, 2, 2);
		arr[3] = new MyDate(2008, 8, 8);
		arr[2] = new MyDate(1999, 9, 9);
		for (int i = 0; i < arr.length; i++) { // 如果数组中有空洞, 就是抛出空指针异常
			System.out.println(arr[i].say());
		}	
	}
}

class ArrayTest7 {
	//字符串数组的创建
	public static void main(String[] args) {
		String[] strArr = {"aaa", "yyy", "bbb", "xxx", "qqq"};
		for (int i = 0; i < strArr.length; i++) {
			System.out.println(strArr[i]);
		}
	}
}

class ArrayTest8 {
	//main方法中用字符串数组做参数
// 命令行参数的用法
	public static void main(String[] args) { // 命令行参数的用法
		for (int i = 0; i < args.length; i++) {
			System.out.println(args[i]);
		}	
	}
}

class Exer5 {
	// 从命令行接收8个分数值, 打印分数的等级,如果分数值大于80,打印良, 小于60打印不及格, 其他打印其他 
	public static void main(String[] args) {
			for (int i = 0; i < args.length; i++) {
			int score = Integer.parseInt(args[i]);
			if (score > 80) {
				System.out.println(score + " : 良");
			} else if (score < 60) {
				System.out.println(score + " : 不及格");
			} else {
				System.out.println(score + " : 其他");
			}
		}
	}
}
class ArrayTest10 {
	//创建MyDate类型的对象date1,其参数由命令行参数获取
	public static void main(String[] args) { // 命令行参数的用法
		MyDate date1 = new MyDate(	Integer.parseInt(args[0]), 
									Integer.parseInt(args[1]), 
									Integer.parseInt(args[2]));
		System.out.println(date1.say());
	}
}
//MyDate 类的定义
class MyDate {
	int year;
	int month;
	int day;
//全参构造器
	public MyDate(int year, int month, int day) {
		this.year = year;
		this.month = month;
		this.day = day;
	}
	public String say() {
		return year + "年" + month + "月" + day + "日";
	}
}

class Exer6 {
	// 生成5个[10~30)的随机整数
	public static void main(String[] args) {
		for (int i = 0; i < 5; i++) {
			int rand = (int)(Math.random() * 20 + 10);
			System.out.println(rand);
		}
	}
}

class ArrayTest11 {
	//生成[0~1)、[0~101)、[0~50)的随机小数
	public static void main(String[] args) {
		double rand1 = Math.random(); // 生成一个随机小数[0~1)
		System.out.println(rand1);
		double rand2 = Math.random() * 101; // 生成一个随机小数[0~101)
		System.out.println(rand2);
		int rand3 = (int)(Math.random() * 50); // 生成一个随机整数[0~50)
		System.out.println(rand3);
	}
}

class ArrayTest12 {
	//创建一个8个元素的数组,每个元素被[1-20)的随机数赋值,并遍历打印、求和、平均值、最大值并打印
	public static void main(String[] args) {
		int[] arr = new int[8];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = (int)(Math.random() * 20);
		}
		// 遍历
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
		// 求和
		int sum = 0;
		for (int i = 0; i < arr.length; i++) {
			sum += arr[i];
		}
		System.out.println("sum:" + sum);
		// 求平均值
		int avg = sum / arr.length;
		System.out.println("avg:" + avg);
		// 找最大值
		int max = arr[0]; // 先假定第一个数是最大值
		for (int i = 0; i < arr.length; i++) {
			if (arr[i] > max) { // 从数列中遍历每个数,都和max作比较, 如果某个数比max还大, 你就是max
				max = arr[i];
			}
		}
		System.out.println("max:" + max);
		System.out.println();
	}
}


你可能感兴趣的:(【JavaEE】)