周末小作业

一、选择排序

/**
 * 选择排序
 */
public class task01 {
	public static void main(String[] args) {
		int[] nums = {3,2,5,1,4};
		for (int i = 0; i < nums.length -1; i++) {
			for (int j = i + 1; j < nums.length; j++) {
				if (nums[i] > nums[j]) {
					int temp = nums[i];
					nums[i] = nums[j];
					nums[j] = temp;
				}
			}
		}
		//循环遍历
		for (int i : nums) {			
			System.out.print(i+"\t");
		}
	}
}

二、冒泡排序

/**
 *冒泡排序
 */
public class task02 {
	public static void main(String[] args) {
		int[] nums = {3,2,5,1,4};
		for (int i = 0; i < nums.length - 1; i++) {
			for (int j = 0; j < nums.length - 1 - i; j++) {
				if (nums[j] > nums[j+1]) {
					int temp = nums[j];
					nums[j] = nums[j+1];
					nums[j+1] = temp;
				}
			}
		}
		for (int i : nums) {
			System.out.print(i+"\t");
		}
	}
}

三、适用于菜单展示的循环是?适用于循环次数明确的循环是?说明其原因

/**
 * 适用于菜单展示的循环是?适用于循环次数明确的循环是?说明其原因
 */
public class task03 {
	public static void main(String[] args) {
		//菜单展示循环 do while 条件设置为永真,一直进行菜单显示
		System.out.println("请输入:");
		Scanner input = new Scanner(System.in);
		System.out.println("=================欢迎进入XXXX银行系统===================");
		do {
			System.out.println("【1】存款 【2】取款 【3】转账 【4】查询余额 【5】修改密码 【0】退出 ");
			int choice = input.nextInt();
			switch (choice) {
			case 1:
				//存款
				//save(user);
				break;
			case 2:
				//取款
				//withDraw(user);
				break;
			case 3:
				//转账
				//trans(user);
				break;
			case 4:
				//查询余额
				//query(user);
				break;
			case 5:
				//修改密码
				//modifyPassword(user);
				break;
			case 0:
				//退出
				System.out.println("退出成功!");
				return;
			default:
				System.out.println("请输入正确的指令!");
				break;
			}
		} while (true);//当执行退出操作时,循环结束
		
		//循环次数明确的循环 for循环 例如冒泡排序...  根据次数设循环条件
		
	}
}

四、九九乘法表

/**
 * 九九乘法表
 */
public class task04 {
	public static void main(String[] args) {
		for (int i = 1; i <= 9; i++) {//行
			for (int j =1 ; j <= i; j++) {//列
				System.out.print(j+"*"+i+"="+j*i+"\t");
			}
			System.out.println();
		}
	}
}

五、数组复制的三种方式

/**
 * 数组复制的三种方式
 */
public class task05 {
	public static void main(String[] args) {
		
		//第一种 通过for循环遍历赋值给新的数组逐一赋值
		int[] nums = {1,2,3,4,5};
		//扩容新数组,为原来空间的两倍(可以但没必要)
		int[] nums1 = new int[nums.length*2];
		//通过for循环将原数组复制到新数组中
		for (int i = 0; i < nums.length; i++) {
			nums1[i] = nums[i];
		}
		//遍历输出
		System.out.println("循环将原数组中所有元素逐一赋值给新数组:");
		for (int i = 0; i < nums1.length; i++) {
			System.out.print(nums1[i]+"\t");
		}
		
		//第二种 通过System.arrarycopy(原数组,原数组起始,新数组,新数组起始,长度)
		int[] nums2 = new int[nums.length*2];
		//调用方法
		System.arraycopy(nums, 0, nums2, 0, nums.length);
		//遍历输出
		System.out.println();
		System.out.println("通过System.arrarycopy(原数组,原数组起始,新数组,新数组起始,长度)方法复制:");
		for (int j = 0; j < nums.length; j++) {
			System.out.print(nums[j]+"\t");
		}
		
		//第三种 java.util.Arrays.copyOf(原数组, 新长度)。返回带有原值的新数组。
		//int[] nums3 = java.util.Arrays.copyOf(nums, nums.length);不用导包
		int[] nums3 = Arrays.copyOf(nums, nums.length);
		System.out.println();
		System.out.println("通过java.util.Arrays.copyOf(原数组, 新长度)复制:");
		for (int k = 0; k < nums.length; k++) {
			System.out.print(nums[k]+"\t");
		}
	}	
}