第四天:判断、循环、多重循环、一维数组。

同样是练习居多,新增多重循环和简单数组。
java图形输出:矩形、平行四边形、三角形、菱形、数字菱形、空心菱形。
代码练习:

import java.util.Scanner;

public class Demo01 {
	public static void main(String[] args) {
		//switch 
//		Scanner sc = new Scanner(System.in);
//		System.out.println("请输入韩嫣的名次(第x名):");
//		int mc = sc.nextInt();
//		switch (mc) {//int short byte char 枚举  String(String需要JDK1.6以上)
//		case 1:
//			System.out.println("参加麻省理工大学组织的1个月夏令营");
//			break;
//		case 2:
//			System.out.println("奖励惠普笔记本电脑一部");
//			break;
//		case 3:
//			System.out.println("奖励移动硬盘一个");
//			break;
//
//		default:
//			System.out.println("没有奖励");
//			break;
//		}
		
		
		//10、菜单跳转,先选择一级分类,例如家用电器,再选择二级分类,例如电视,在选择三级分类,
		//例如小米,最后打印“你购买了小米电视”
		System.out.println("1、家用电器\n2、手机数码\n3、家居家具\n4、男装女装\n5、皮鞋箱包");
		Scanner sc = new Scanner(System.in);
		System.out.print("请选择:");
		int num0 = sc.nextInt();
		switch (num0) {
		case 1:
			System.out.println("1、电视\n2、冰箱\n3、洗衣机\n4、空调\n5、厨卫电器\n6、生活电器");
			System.out.print("请选择:");
			int num1 = sc.nextInt();
			switch (num1) {
			case 1:
				System.out.println("1、小米\n2、创维\n3、松下\n4、夏普");
				System.out.print("请选择:");
				int dianShi = sc.nextInt();
				switch (dianShi) {
				case 1:
					System.out.println("你购买了小米电视");
					break;

				default:
					break;
				}
				break;
			case 2:
				System.out.println("1、博世\n2、三星\n3、西门子");
				break;
			case 3:
				
				break;
			case 4:
				
				break;

			default:
				break;
			}
			break;
		case 2:
			System.out.println("1、手机\n2、手环\n3、耳机");
			System.out.print("请选择:");
			int num2 = sc.nextInt();
			break;
		case 3:
			System.out.println("1、床品套件\n2、沙发\n3、床\n4、电视柜");
			System.out.print("请选择:");
			int num3 = sc.nextInt();
			break;
		case 4:
			System.out.println("1、西装\n2、风衣\n3、衬衣\n4、裙子");
			System.out.print("请选择:");
			int num4 = sc.nextInt();
			break;
		case 5:
			System.out.println("1、皮鞋\n2、旅行箱\n3、双肩背包");
			System.out.print("请选择:");
			int num5 = sc.nextInt();
			break;

		default:
			System.out.println("您的输入有误!");
			break;
		}
}
}



public class Demo02 {
	public static void main(String[] args) {
		//多重循环练习:矩形、平行四边形、三角形、菱形、数字菱形、空心菱形
		//1.矩形
		for(int i=1; i<=5; i++) {//列
			for(int j=1; j<=5; j++) {//行
				System.out.print("*");
			}
			System.out.println();
		}
		
		//2.平行四边形
		for(int i=1; i<=5; i++) {//列
			for(int j=1; j<=5-i; j++) {//空白
				System.out.print(" ");
			}
			for(int j=1; j<=5; j++) {//行
				System.out.print("*");
			}
			System.out.println();
		}
		
		//3.三角形
		for(int i=1; i<=5; i++) {//列
			for(int j=1; j<=5-i; j++) {//空白
				System.out.print(" ");
			}
			for(int j=1; j<=2*i-1; j++) {//行
				System.out.print("*");
			}
			System.out.println();
		}
		
		//4.菱形
		//先输出上边的5行三角形
		for(int i=1; i<=5; i++) {//列
			for(int j=1; j<=5-i; j++) {//空白
				System.out.print(" ");
			}
			for(int j=1; j<=2*i-1; j++) {//行:上5行
				System.out.print("*");
			}
			System.out.println();
		}
		//再补上下边4行的倒三角形
		for(int i=1; i<=4; i++) {//列
			for(int j=1; j<=i; j++) {//空白
				System.out.print(" ");
			}
			for(int j=1; j<=2*(5-i)-1; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		
		//5.数字菱形
		for(int i=1; i<=5; i++) {
			for(int j=1; j<=5-i; j++) {
				System.out.print(" ");
			}
			for(int j=1; j<=2*i-1; j++) {
					System.out.print(i);
			}
			System.out.println();
		}
		for(int i=1; i<=4; i++) {
			for(int j=1; j<=i; j++) {
				System.out.print(" ");
			}
			for(int j=1; j<=2*(5-i)-1; j++) {
				System.out.print(i);
			}
			System.out.println();
		}
		
		//空心菱形
		for(int i=1; i<=5; i++) {
			for(int j=1; j<=5-i; j++) {
				System.out.print(" ");
			}
			for(int j=1; j<=2*i-1; j++) {
				if(j==1 || j==2*i-1) {
					System.out.print("*");
				}else {
					System.out.print(" ");
				}
			}
			System.out.println();
		}
		for(int i=1; i<=4; i++) {
			for(int j=1; j<=i; j++) {
				System.out.print(" ");
			}
			for(int j=1; j<=2*(5-i)-1; j++) {
				if(j==1 || j==2*(5-i)-1) {
					System.out.print("*");
				}else {
					System.out.print(" ");
				}
			}
			System.out.println();
		}
		
	}
}



import java.util.Scanner;

public class Demo03 {
	public static void main(String[] args) {
		//1.使用while循环实现1+2+3+...+100的和。
//		int i = 1;
//		int sum = 0;
//		while (i<=100) {
//			sum +=i;
//			i++;
//		}
//		System.out.println("sum=" + sum);
		
		
		//2.使用do-while实现1到100之间能被3整除的数之和。
//		int i = 1;
//		int sum = 0;
//		do {
//			if(i%3 == 0) {
//				sum += i;
//			}
//			i++;
//		} while (i <= 100);
//		System.out.println("sum=" + sum);
		
		
		//3.使用for循环,输入一名学生5门功课的成绩,求出平均分
//		Scanner sc = new Scanner(System.in);
//		System.out.print("输入学生姓名:");
//		String name = sc.next();
//		double cj = 0;
//		double sum = 0;
//		boolean flag = true;
//		for(int i=1; i<=5; i++) {
//			System.out.print("请输入5门功课中的第" + i + "门成绩:");
//			cj = sc.nextDouble();
//			if(cj > 0) {
//				sum +=cj;
//			}else {
//				System.out.println("您录入的成绩有误!");
//				flag =false;
//			}
//		}
//		if(flag != false) {
//			System.out.println(name + "的平均分是" + sum/5);
//		}
		
		
		//4.老师每天检查张浩的学习任务是否合格。如果不合格,则继续进行。
//		Scanner sc = new Scanner(System.in);
//		System.out.print("合格了吗?(y/n):");
//		String jg = sc.next();
//		while (jg.equals("n")) {
//			System.out.println("上午阅读材料!\n下午上级编程");
//			System.out.println();
//			System.out.print("合格了吗?(y/n):");
//			jg = sc.next();
//		}
//		System.out.println("完成学习任务!");
		
		
		//5.2012年培养学员25万人,每年增长25%。请问按此增长速度,到哪一年培训学员人数将达到100万人?
//		double ren = 25;//单位为万
//		int ks = 2012;
//		while (ren < 100) {
//			ren *=1.25;
//			ks++;
//		}
//		System.out.println(ks + "年到达100万人");
		
		
		//6.循环输入商品编号和购买数量,显示对应的商品价格、数量、合计,输入“n“结束循环,结账时计算应付金额并找零
//		System.out.println("**********************************************************");
//		System.out.println("请选择购买的商品编号:");
//		System.out.println("1.T恤\t2.网球鞋\t3.网球拍");
//		System.out.println("**********************************************************");
//		int bianHao, shuLiang = 0;
//		double tXu = 245.0, qiuXie = 500, qiuPai = 150;
//		double zheKou = 0.8, yingFu, shiFu, zhaoQian;
//		boolean flag = true;
//		
//		Scanner sc = new Scanner(System.in);
//		while (flag) {
//			System.out.print("请输入商品编号:");
//			bianHao = sc.nextInt();
//			System.out.print("请输入商品数量:");
//			shuLiang = sc.nextInt();
//			
//			switch (bianHao) {
//			case 1:
//				System.out.println("T恤:¥" + tXu + "\t" + "数量:" + shuLiang + "合计:¥" + tXu*shuLiang);
//				break;
//			case 2:
//				System.out.println("网球鞋:¥" + qiuXie + "\t" + "数量:" + shuLiang + "合计:¥" + qiuXie*shuLiang);
//				break;
//			case 3:
//				System.out.println("网球拍:¥" + qiuPai + "\t" + "数量:" + shuLiang + "合计:¥" + qiuPai*shuLiang);
//				break;
//			default:
//				System.out.println("您的输入有误!");
//				break;
//			}
//			
//			System.out.println("是否继续(y/n):");
//			String xz = sc.next(); 
//			if(xz.equals("y")) {
//				flag = true;
//			}else {
//				flag = false;
//				System.out.println("折扣:" + zheKou);
//				yingFu = (tXu*shuLiang+qiuXie*shuLiang+qiuPai*shuLiang)*zheKou;
//				System.out.println("应付金额:" + yingFu);
//				System.out.print("实付金额:");
//				shiFu = sc.nextDouble();
//				zhaoQian = shiFu-yingFu;
//				System.out.println("找钱:" + zhaoQian);
//			}
//		}
		
		
		//7.使用do-while实现:输出摄氏温度与华氏温度的对照表,
		//要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。
		//转换关系:华氏温度 = 摄氏温度 * 9 / 5.0 + 32
//		int i =1;//对照条目
//		double sheShi = 0, huaShi;
//		System.out.println("摄氏度\t华氏度");
//		do {
//			sheShi = 20*(i-1);
//			huaShi = sheShi*9/5.0+32;
//			System.out.println(sheShi + "\t" + huaShi);
//			i++;
//		} while (i<=10);
		
		
		//8.如果用户输入错误,可以重复输入直到输入正确,执行相应的操作后退出循环
//		System.out.println("欢迎使用MyShopping管理系统");
//		System.out.println("*************************************************");
//		System.out.println("\t\t1.客户信息管理");
//		System.out.println("\t\t2.购物结算");
//		System.out.println("\t\t3.真情回馈");
//		System.out.println("\t\t4.注销");
//		System.out.println("*************************************************");
//		boolean flag = true;
//		Scanner sc = new Scanner(System.in);
//		System.out.print("请选择,输入数字:");
//		while (flag) {
//			int choose = sc.nextInt();
//			switch (choose) {
//			case 1:
//				System.out.println("执行程序结算");
//				System.out.println();
//				System.out.println("程序结束");
//				flag = false;
//				break;
//			case 2:
//				System.out.println("执行程序结算");
//				System.out.println();
//				System.out.println("程序结束");
//				flag = false;
//				break;
//			case 3:
//				System.out.println("执行程序结算");
//				System.out.println();
//				System.out.println("程序结束");
//				flag = false;
//				break;
//			case 4:
//				System.out.println("执行程序结算");
//				System.out.println();
//				System.out.println("程序结束");
//				flag = false;
//				break;
//			default:
//				System.out.print("输入错误,请重新输入数字:");
//				break;
//			}
//		}
		
		
		//9.使用for循环实现加法
//		Scanner sc = new Scanner(System.in);
//		System.out.print("请输入一个值:");
//		int num = sc.nextInt();
//		System.out.println("根据这个值可以输出以下加法表:");
//		for(int i=0; i<=num; i++) {
//			System.out.print(i + " + " + (num-i) + " = " + num);
//			System.out.println();
//		}
		
		
		//10.商场对顾客的年龄层次进行调查,计算各年龄层次的顾客比例
//		int count = 0;
//		double young = 0, old = 0;
//		Scanner sc = new Scanner(System.in);
//		for(int i=1; i<=10; i++) {
//			System.out.print("请输入第" + i + "位顾客的年龄:");
//			int num = sc.nextInt();
//			if(num<=30) {
//				count++;
//			}
//		}
//		young = count*10;
//		old = (10-count)*10;
//		System.out.println("30岁以下的比例是:" + young + "%");
//		System.out.println("30岁以上的比例是:" + old + "%");
		
		
		//11.叙述break和continue的作用
		//break:常用在switch和循环中,有break,则程序终止循环跳转到循环块外的下一条语句。
		//continue:只能用在循环中,与continue,则跳过循环内其他语句,直接执行下一次循环。

		
		//12.1~10之间的整数相加,得到累加值大于20的当前数(使用break实现)
//		int sum = 0;
//		for(int i=1; i<=10; i++) {
//			sum += i;
//			if(sum > 20) {
//				break;
//			}
//		}
//		System.out.println("累加值大于20,当前值为:" + sum);
		
		
		//13.循环录入Java课的学生成绩,统计分数大于等于80分的学生比例(使用continue实现)
//		int count =0;
//		Scanner sc = new Scanner(System.in);
//		System.out.print("请输入班级总人数:");
//		double n = sc.nextDouble();
//		for(int i=1; i<=n; i++) {
//			System.out.print("请输入第" + i + "位学生的成绩:");
//			double cj = sc.nextDouble();
//			if(cj < 80) {
//				continue;
//			}else {
//				count++;
//			}
//		}
//		double per = count/n;
//		System.out.println("80分以上的学生人数是:" + count);
//		System.out.println("80分以上的学生所占的比例是:" + per*100 + "%");
		
		
		//14.循环录入3位会员的信息,会员号合法,显示录入信息;否则显示录入失败  break
//		Scanner sc = new Scanner(System.in);
//		System.out.println("MyShopping管理系统 -> 客户信息管理 -> 添加客户信息");
//		System.out.println();
//		int i = 1;
//		int num = 0, jf = 0;
//		String sr ="";
//		while(i <= 3) {
//			System.out.print("请输入会员号(<4位整数>):");
//			num = sc.nextInt();
//			System.out.print("请输入会员生日(月/日<用两位整数表示>):");
//			sr = sc.next();
//			System.out.print("请输入会员积分:");
//			jf = sc.nextInt();
//			System.out.println("您录入的会员信息是:");
//			System.out.println(num + "\t" + sr + "\t" + jf);
//			System.out.println();
//			
//			i++;
//			if(i == 4) {
//				System.out.println("程序结束!");
//				break;
//			}
//		}
		
		
		//15.用户登录验证,验证次数最多3次
//		Scanner sc = new Scanner(System.in);
//		boolean flag = true;
//		String name = "";
//		int miMa = 0;
//		int i = 1;
//		int count = 3;
//		while (flag) {
//			System.out.print("请输入用户名:");
//			name=sc.next();
//			System.out.print("请输入密码:");
//			miMa = sc.nextInt();
//			if(name.equals("jim") && miMa==123456) {
//				System.out.println("欢迎登陆MyShopping系统");
//				break;
//			}else {
//				System.out.println("输入错误!您还有" + (count-i) + "次机会!");
//				System.out.println();
//			}
//			i++;
//			if(i == 4) {
//				System.out.println("对不起,您" + (i-1) + "次均输入错误!");
//				break;
//			}
//		}
		
		
		//16.输入一批整数,输出其中的最大值和最小值,输入0时结束循环。
//		Scanner sc = new Scanner(System.in);
//		int num =0;
//		int max=num;
//		int min=num;
//		while (true) {
//			System.out.print("请输入一个整数(输入0结束):");
//			num = sc.nextInt();
//			if(num == 0) {
//				break;
//			}
//			max = num>max?num:max;//三目运算符巧赋值
//			min = num<min?num:min;
//		}
//		System.out.println("最大值是:" + max + "最小值是:" + min);
		
		
		//17.用键盘输入一位整数,等输入1~7时,显示对应的英文星期名称的缩写。
		//输入其他数字时提示用户重新输入,输入数字0时程序结束。
//		Scanner sc = new Scanner(System.in);
//		int num = 0;
//		while (true) {
//			System.out.print("请输入数字1~7(输入0结束):");
//			num = sc.nextInt();
//			if(num == 0) {
//				System.out.println("程序结束!");
//				break;
//			}
//			switch (num) {
//			case 1:
//				System.out.println("今天是MON");
//				break;
//			case 2:
//				System.out.println("今天是TUE");
//				break;
//			case 3:
//				System.out.println("今天是WED");
//				break;
//			case 4:
//				System.out.println("今天是THU");
//				break;
//			case 5:
//				System.out.println("今天是FRI");
//				break;
//			case 6:
//				System.out.println("今天是STA");
//				break;
//			case 7:
//				System.out.println("今天是SUN");
//				break;
//
//			default:
//				System.out.println("请输入1~7的整数!");
//				break;
//			}
//		}
		
		
		//18.实现输出1~100中所有不能7整除的数,并求其和。
//		int i = 1;
//		int sum = 0;
//		int count = 0;
//		System.out.println("1~100之间不能被7整除的数据为:");
//		while (i <= 100) {
//			if(i%7 != 0) {
//				System.out.print(i + "\t");
//				sum += i;
//				count++;
//				if (count%4 == 0) {
//					System.out.println();
//				}
//			}
//			i++;
//		}
//		System.out.println();
//		System.out.println("数据之和为:" + sum);	
	}
}




import java.util.Scanner;

public class Demo04 {
	public static void main(String[] args) {
		//输入八位用户编号,如果各位数字之和能被7整除,则中奖。
//		Scanner sc = new Scanner(System.in); 
//		System.out.print("请输入用户编号(八位):");
//		int num = 0;
//		int sum = 0;
//		int ge = 0;
//		num = sc.nextInt();
//		for(int i=1; i<=8; i++) {
//			ge = num%10;
//			sum += ge;
//			num = (num - ge) /10;
//		}
//		System.out.println("各位数之和为:" + sum);
//		if (sum % 7 ==0) {
//			System.out.println("你中奖了!");
//		} else {
//			System.out.println("没中奖。");
//		}
		//也可以用字符做   
		
		
		//控制台输出1~100间的质数(1不是质数)
		int count = 0;
		for(int i=2; i<=100; i++) {
			boolean flag = true;
			for(int j=2; j<i; j++) {
				if(i%j == 0) {
					flag = false;
					break;
				}
			}
			if(flag) {
				System.out.print("质数:" + i + "\t");
				count++;
				if(count%4 == 0) {
					System.out.println();
				}
			}
		}		
	}
}




import java.util.Scanner;
/**
 * 数组练习
 * @author 11142
 *
 */
public class Demo05 {
	public static void main(String[] args) {
		//1.计算数组中人数的平均分,使用数组实现
//		double[] scores = new double[5];
//		Scanner sc = new Scanner(System.in);
//		double sum = 0;
//		
//		for(int i=0; i<scores.length; i++) {
//			System.out.print("请输入第" + (i+1) + "个学生的成绩:");
//			//给数组赋值
//			scores[i] = sc.nextDouble();
//			sum += scores[i];
//		}
//		//增强for
		for (double score : scores) {
			sum += score;
		}
//		
//		double avg = sum / scores.length;
//		System.out.println(scores.length + "个学生的平均分为:" + avg);
		
		
		//2.有一个数列:8,4,2,1,23,344,12,遍历数列的值;求数列中所有数值的和;
		//猜数:从键盘任意输入一个数,判断是否在数列中。
//		Scanner sc = new Scanner(System.in);
//		int[] a = {8,4,2,1,23,344,12}; 
//		int sum = 0;
//		boolean flag = true;
//		for (int i=0; i<a.length; i++) {
//			System.out.print(a[i] + "\t");
//			sum += a[i];
//		}
//		System.out.println("\n数列中所有数值的和为:" + sum);
//		System.out.print("请输入一个数:");
//		int num = sc.nextInt();
//		for (int j : a) {
//			if(num == j) {
//				flag = false;
//				break;
//			}
//		}
//		if(flag) {
//			System.out.println("数列中没有:" + num);
//		}else {
//			System.out.println("数列中包含:" + num);
//		}
		
		
		//3.从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分和最低分
//		Scanner sc = new Scanner(System.in);
//		double[] score = new double[5];
//		double max =0;//在外边声明一下,但是要注意不要直接拿声明的值去进行比较,有时会出现错误!
//		double min =0;
//		for(int i=0; i<score.length; i++) {
//			System.out.print("请输入第" + (i+1) + "名学生的成绩:");
//			score[i] = sc.nextDouble();
//			max = score[0]; //赋值给数组中第一个数
//			min = score[0];
//			if(score[i] > max) {
//				max = score[i];
//			}
//			if(score[i] < min) {
//				min = score[i];
//			}
			max = score[i]>max?score[i]:max; //三目元算符也行
			min = score[i]<max?score[i]:max; //三目元算符也行
//		}
//		System.out.println("最大值为:" + max + "最小值为:" + min);
		
		
		//4.有一组学员的成绩{99,85,82,63,60},将它们按降序排列。
		//要增加一个学员的成绩,将它插入成绩序列,并保持降序。
		int[] nums = new int[6];
		nums[0] = 99;
		nums[1] = 85;
		nums[2] = 82;
		nums[3] = 63;
		nums[4] = 60;
		
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入一个数:");
		int num = sc.nextInt();
		//将num插到nums数组的index索引位置
		int index = nums.length-1;//取0或1是有问题的
		
		//将用户插入的数据和数组中的5个数因此相比,直到遇到一个比它小的数为止
		//第一个比它小的数的索引位置,就是这个数要插入的位置index
		for (int i = 0; i < nums.length; i++) {
			if(num>nums[i]) {
				index = i;
				break;
			}
		}
		
		//将原来的位置依次往后移,留出空地,插入新值
		for(int j=nums.length-1; j>index; j--) {
			nums[j] = nums[j-1];
		}
		nums[index] = num;
		System.out.println("插入成绩的下标是:" + index);
		System.out.println("插入后的新数组元素如下:");
		for (int i : nums) {
			System.out.print(i + "\t");
		}	
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值