Java练习题-05

1. (for循环应用 )

需求说明:
循环输入某同学专业阶段考试的5门课成绩,并计算平均分

思路分析:
选择循环语句
for循环步骤
分析循环变量、循环条件和循环体
代码实现
确定循环退出条件

public void test5() {
		double score = 0;
		double sum = 0;
		double avg = 0;
		String name = "";
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入学生的姓名:");
		name = sc.nextLine();
		for(int i = 1;i<=5;i++) {
			System.out.print("请输入5门功课中第"+i+"门课的成绩:");
			score = sc.nextInt();
			sum+=score;
		}
		avg = sum/5;
		System.out.println(name+"的平均分为"+avg);
		
	}
请输入学生的姓名:张三
请输入5门功课中第1门课的成绩:98
请输入5门功课中第2门课的成绩:99
请输入5门功课中第3门课的成绩:95
请输入5门功课中第4门课的成绩:88
请输入5门功课中第5门课的成绩:96
张三的平均分为95.2

2. for循环应用 

训练要点:
for循环结构

需求说明:
商场对顾客的年龄层次进行调查
计算各年龄层次的顾客比例

	@Test
	//顾客年龄占比
	public void test6() {
		Scanner sc = new Scanner(System.in);
		double people1 = 0;
		double people2 = 0;
		for(int i = 1;i<=10;i++) {
			System.out.print("请输入第"+i+"位顾客的年龄:");
			int age = sc.nextInt();
			if(age<30) {
				people1++;
			}else if(age>30) {
				people2++;
			}
		}
		System.out.println("30岁以下的比例是"+(people1/10)*100+"%"); 
//people1不能定义为int型 因为除以10会出现小数位
		System.out.println("30岁以上的比例是"+(people2/10)*100+"%");
		
	}
请输入第1位顾客的年龄:36
请输入第2位顾客的年龄:35
请输入第3位顾客的年龄:12
请输入第4位顾客的年龄:45
请输入第5位顾客的年龄:36
请输入第6位顾客的年龄:56
请输入第7位顾客的年龄:78
请输入第8位顾客的年龄:20
请输入第9位顾客的年龄:13
请输入第10位顾客的年龄:11
30岁以下的比例是40.0%
30岁以上的比例是60.0%

3. 打印直角三角形(for循环嵌套运用)

训练要点:
循环嵌套及循环条件的设定
使用Scanner对象接收用户输入

需求说明
从控制台输入直角三角形的高度
(行数)
每行 * 的数目依次为1、3、5、7…

	public void test9() {
		System.out.print("请输入直角三角行的行数:");
		int n = new Scanner(System.in).nextInt();
		for(int i=0;i<=n;i++) { //行
			for(int j=0;j<=n-i-1;j++) { //每行个数
				System.out.print("*");
			}
			System.out.println(""); //换行
		}
	}
请输入直角三角行的行数:5
*
***
*****
*******
*********

4.  打印倒直角三角形(for循环嵌套运用)

需求说明:
从控制台输入直角三角形的高度(行数)
每行*的数目从下至上依次为5、4、3、2…

 

	//打印倒直角三角形
	public void test10() {
		System.out.print("请输入直角三角行的行数:");
		int n = new Scanner(System.in).nextInt();
		for(int i=0;i<=n;i++) { //行
			for(int j=i;j<=n;j++) { //每行个数
				System.out.print("*");
			}
			System.out.println(""); //换行
		}
	}
请输入直角三角行的行数:5
******
*****
****
***
**
*

5. 打印九九乘法表(for循环嵌套应用)

	public void test11() {
		for(int i=1;i<=9;i++) {   //走了多少趟
			for(int j=i;j<=9;j++) {   //每一趟走了多少次
				System.out.print(i+"*"+j+"="+i*j+"\t");
			}
			System.out.println(""); //换行
		}
	}
1*1=1	1*2=2	1*3=3	1*4=4	1*5=5	1*6=6	1*7=7	1*8=8	1*9=9	
2*2=4	2*3=6	2*4=8	2*5=10	2*6=12	2*7=14	2*8=16	2*9=18	
3*3=9	3*4=12	3*5=15	3*6=18	3*7=21	3*8=24	3*9=27	
4*4=16	4*5=20	4*6=24	4*7=28	4*8=32	4*9=36	
5*5=25	5*6=30	5*7=35	5*8=40	5*9=45	
6*6=36	6*7=42	6*8=48	6*9=54	
7*7=49	7*8=56	7*9=63	
8*8=64	8*9=72	
9*9=81	

6. 求出1-100之间奇数和(循环的应用)

请编写程序,求出1-100之间奇数和,实现计算“1+3+5+7+…+99”的值。
提示:
a. 用循环语句实现自然数1一99的遍历
b. 在遍历过程中,通过条件判断当前遍历的数是否为奇数,如果是就累加,否则不加

 

	public void test12() {
		int sum = 0;
		for(int i=1;i<=100;i++) {
			if(i%2!=0) {
				sum+=i;
			}
		}
		System.out.println("1-100之间的奇数和为:"+sum);
	}
	
1-100之间的奇数和为:2500

7. (循环的应用)手动输入两个数字m和n,运算求出m~n之间所有偶数的和。

	public void test13() {
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入数字m:");
		int m = sc.nextInt();
		System.out.print("请输入数字n:");
		int n = sc.nextInt();
		int sum = 0;
		for(int i=m;i<=n;i++) {
			if(i%2==0) {
				sum+=i;
			}
		}
		System.out.println("m~n之间所有偶数的和为:"+sum);
	}
请输入数字m:99
请输入数字n:849
m~n之间所有偶数的和为:177750

8. (进阶-运算符和循环的应用 )

请统计1-1000之间同时满足如下条件的数据有多少个
•   对3整除余2
•   对5整除余3
•   对7整除余2

	public void test14() {
		int num = 0;
		for(int i=1;i<=1000;i++) {
			if(i%3==2 && i%5==3 && i%7==2) {
				num++;
				System.out.println(i);
			}
		}
		System.out.println("有"+num+"个");
	}
	
23
128
233
338
443
548
653
758
863
968
有10个

9.(进阶-选择结构和循环的应用)实现登陆功能:如果用户名输入“tom”,密码“123”,提示登陆成功,否则提示输“入错误,请重新输入!您还有XX次机会”(其中xx要明确打印出数值)。 三次输入错误后将不可以再输入,并提示“对不起,你的账号将被锁定”。

public void test15() {
		String admin = "tom";
		int code = 123;
		Scanner sc = new Scanner(System.in);
		for(int i=2;i>=0;i--) {
			System.out.print("请输入用户名:");
			String name = sc.next();
			System.out.print("请输入密码:");
			int code1 = sc.nextInt();
			if(admin.equals(name) && code==code1) {
				System.out.println("登录成功");
				break;
			}else if(i==2 || i==1){
				System.out.println("输入错误,请重新登录!你还有"+i+"次机会");
			}else if(i==0) {
				System.out.println("对不起,你的账号将被锁定");
			}
		}
	}
测试1:
请输入用户名:tom
请输入密码:123
登录成功


测试2:
请输入用户名:uouo
请输入密码:12345
输入错误,请重新登录!你还有2次机会
请输入用户名:tom
请输入密码:1235
输入错误,请重新登录!你还有1次机会
请输入用户名:tom
请输入密码:1256
对不起,你的账号将被锁定

10. (选择结构和循环的应用) 小芳的妈妈每天给她2.5元钱,她都会存起来,但是,每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,请问,经过多少天,小芳才可以存到100元钱。(提示:用break)

public void test16() {
		double money = 0;
		for(int day =1 ;day<=1000;day++) {
			money=money+2.5;
			if(money==100) {
				System.out.println("存100块需要"+day+"天");
				break;
			}else if(day%5==0) {
				money-=6;
			}
		}
		System.out.println("存了"+money+"块");
	}
存100块需要76天
存了100.0块

11. (循环的应用) 求出1-100之间偶数和。

	public void test17() {
		int i = 0;
		int sum = 0;
		while(i!=101) {
			i++;
			if(i%2==0) {
				sum+=i;
			}
		}
		System.out.println("1-100之间的偶数和为:"+sum);
	}
1-100之间的偶数和为:2550

12. (while循环应用)

需求:
打印50张电影票
实现思路:
是否属于反复执行的问题
确定循环变量、循环条件和循环体
画出流程图
使用while语法写出代码

	public void test2() {
		int ticket=0;
		while(ticket<50) {
			ticket++;
			System.out.println(ticket+"电影票");
		}
	}

13. (while循环应用)老王每天早晨沿着操场慢跑10圈,在第5圈的时候,会停下来休息5分钟再接着跑。

	public void test3() {
		int cycle =1;
		while(cycle<=10) {
			if(cycle==5) {
				System.out.println("第5圈时老王休息五分钟");
			}
			cycle++;
			System.out.println("老王跑了第"+cycle+"圈");
		}
	}
老王跑了第2圈
老王跑了第3圈
老王跑了第4圈
老王跑了第5圈
第5圈时老王休息五分钟
老王跑了第6圈
老王跑了第7圈
老王跑了第8圈
老王跑了第9圈
老王跑了第10圈
老王跑了第11圈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值