同样是练习居多,新增多重循环和简单数组。
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");
}
}
}