day3作业

一、基础案例
1.训练案例1
1.1.训练考核知识点
if语句;
for循环语句;
1.2.训练描述
使用for循环,求出1-100之间的奇数之和.
1.3.操作步骤描述
1.定义一个变量,用来记录奇数的累加和;
2.for循环得到1到100之间的每个数字;
3.在for循环里面,判断这个数字是否为奇数;
4.如果为奇数,就与变量累加;
5.for循环结束后,打印累加和;

public class Test1 {
	public static void main(String[] args) {
		int sum=0;
		for (int x=1;x<=100;x++){
			if(x%2==1){
				sum +=x;
			}
		}
		System.out.println(sum);
	}
}

2.训练案例2
2.1.训练考核知识点
选择结构;
循环结构;
2.2.训练描述
求出1到100之间的既是3的倍数又是5倍数的数字之和.
2.3.操作步骤描述
1.定义一个变量,记录累加求和
2.循环遍历1到100之间的每个数字
3.再循环中判断该数是否为既是3的倍数又是5倍数
4.如果满足条件对该数进行累加求和
6.循环结束后打印求和的变量

public class Test1 {
	public static void main(String[] args) {
		int sum=0;
		for (int x=1;x<=100;x++){
			if(x%3==0 && x%5==0){
				sum +=x;
				System.out.println(x);
			}
		}
		System.out.println(sum);
	}
}

3.训练案例3
3.1.训练考核知识点
选择结构;
循环结构;
3.2.训练描述
从键盘上录入一个大于100的三位数,求出100到该数字之间满足如下要求的数字之和:
1.数字的个位数不为7;
2.数字的十位数不为5;
3.数字的百位数不为3;

3.3.操作步骤描述
1.从键盘上录入一个三位数;
2.定义一个变量,用来记录满足条件的数字累加之和;
3.使用for循环获取100到该数字之间的所有数字;
4.得到当前拿到的这个数的个位数,十位数,百位数;
5.判断个位数不为7,十位数不为5,百位数不为3;
6.如果满足条件就累加;
7.循环结束后打印累加之和;

public class Test1 {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个人数字大于100的数字");
		int a =sc.nextInt();
		
		int sum=0;
		for (int x=100;x<=a;x++){
			int gewei = a/10;
			int shiwei = (a/10)%10;
			int baiwei = (a/100)%10;
			
			if (gewei !=7 && shiwei !=5 && baiwei !=3){
				sum +=x;
			}
				
		}
		System.out.println(sum);
		
	}
}

4.训练案例4
4.1.训练考核知识点
switch语句;
循环结构;
4.2.训练描述
请按如下要求编写程序,打印菜单:
1.从键盘上录入一个1到5的数字;
2.当数字为1时打印菜单"新建";
当数字为2时打印菜单"打开文件";
当数字为3时打印菜单"保存";
当数字为4时打印菜单"刷新";
当数字为5时打印菜单"退出",并退出程序;
此行代码可以终止java程序运行: System.exit(0);
4.3.操作步骤描述
1.从键盘上录入一个三位数;
2.使用switch语句判断录入的数字为哪个菜单编号,并打印对应的菜单名称;
3.使用while循环,重复执行1,2两个步骤;

package day3;

import java.util.Scanner;

public class Test1 {
	public static void main(String[] args) {
		while(true){
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入1-5的数字");
		int a =sc.nextInt();
		if(a>=1 && a<=5){
		switch(a){
		case 1:
			System.out.println("新建");
			break;
		case 2:
			System.out.println("打开文件");
			break;
		case 3:
			System.out.println("保存");
			break;
		case 4:
			System.out.println("刷新");
			break;
		case 5:
			System.out.println("退出");
			break;
		}
		}else 
			System.exit(0);
		}
	}
}

5.训练案例5(不讲)
5.1.训练考核知识点
循环结构;
算数运算符;
5.2.训练描述
请按如下要求编写程序,打印菜单:
2个一行打印水仙花数(中间用空格隔开),最后打印水仙花输的总个数

5.3.操作步骤描述
A:定义统计变量,初始化值是0
B:获取三位数,用for循环实现
C:获取每个位上的数据
D:判断数据是否是水仙花数
如果是,就统计变量++
打印该水仙花数(不换行,数字后面加空格)
判断总数量是否是2的倍数
如果是就打印换行
E:输出统计变量

public class Test1 {
	public static void main(String[] args) {
		int count =0;
		
		for (int x=1;x<1000;x++){
			int ge=x%10;
			int shi=(x/10)%10;
			int bai=(x/100)%10;
			if(ge*ge*ge +shi*shi*shi+bai*bai*bai==x){
				System.out.print(x+" ");
				count +=1;
				if(count %2==0){
					System.out.println();
				}					
			}		
		}
		System.out.println();
		System.out.println("总个数为:"+count);
	}
}
1 153 
370 371 
407 
总个数为:5

6.训练案例6(不讲)
6.1.训练考核知识点
循环结构;

6.2.训练描述
猜数字小游戏
系统产生一个1-100之间的随机数,请猜出这个数据是多少?

6.3.操作步骤描述
A:系统产生一个1-100之间的随机数
Random r = new Random();
int number = r.nextInt(100)+1;
B:键盘录入我们要猜的数据
C:比较这两个数据,看我们猜的是否正确
如果大了,提示:你猜的数据大了
如果小了,提示:你猜的数据小了
如果相等,提示:恭喜你,猜中了
D:为了实现多次猜数据,我们就要加入循环,而我们又不知道猜多少次能中。怎么办呢?
死循环:while(true) {…}
for(;😉 {…}

public class Demo1 {
	public static void main(String[] args) {
		Random r = new Random();
		int n = r.nextInt(100) + 1;
		while (true) {
			Scanner sc = new Scanner(System.in);
			int a = sc.nextInt();

			if (n > a) {
				System.out.println("小了");
			} else if (n < a) {
				System.out.println("大了");
			} else {
				System.out.println("猜中了");
				break;
			}

		}
	}
}

二、扩展案例
1.训练案例1(讲)
1.1.训练描述
分析以下需求,并用代码实现:
1.珠穆朗玛峰高度为8848米,有一张足够大的纸,厚度为0.0001米。
2.请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
1.2.操作步骤描述

public class Test1 {
	public static void main(String[] args) {
		int a = 0;//次数
		double b= 0.0001;//初始厚度
		while (b<=8848){
			 b = b*2;
			 a++;
		}
		System.out.println(a);
	}

2.}训练案例2(讲)
2.1.训练描述
按要求打印数字
2.2.操作步骤描述
1.打印1到100之内的整数,但数字中包含9的要跳过
2.每行输出5个满足条件的数,之间用空格分隔
3.如:1 2 3 4 5

public class Test1 {
	public static void main(String[] args) {
		int n = 0;
		for (int i = 1; i <= 100; i++) {
			if (i %10  != 9) {
				n +=1;
				if (n % 5 == 0) {
					System.out.println(i + " ");
				} else  
					System.out.print(i+" ");				
			}
		}
	}
}
1 2 3 4 5 
6 7 8 10 11 
12 13 14 15 16 
17 18 20 21 22 
23 24 25 26 27 
28 30 31 32 33 
34 35 36 37 38 
40 41 42 43 44 
45 46 47 48 50 
51 52 53 54 55 
56 57 58 60 61 
62 63 64 65 66 
67 68 70 71 72 
73 74 75 76 77 
78 80 81 82 83 
84 85 86 87 88 
90 91 92 93 94 
95 96 97 98 100

3.训练案例3(不讲)
3.1.训练描述
按要求打印数字
3.2.操作步骤描述
1.按照从大到小的顺序输出四位数中的个位+百位=十位+千位(3553,2332,1166,8228,3773)的数字及个数
2.每行输出5个满足条件的数,之间用空格分隔
3.如:9999 9988 9977 9966 9955

public class Test1 {
	public static void main(String[] args) {
		int a = 0;
		for (int x = 1; x < 10000; x++) {
			int ge = x % 10;
			int shi = (x / 10) % 10;
			int bai = (x / 100) % 10;
			int qian = (x / 1000) % 10;
			if ((ge + bai) == (shi + qian)) {
				a +=1;
				if (a % 5 == 0) {
					System.out.println(x + " ");
				} else  
					System.out.print(x+" ");
			}
		}
	}
}
7403 7414 7425 7436 7447 
7458 7469 7502 7513 7524 
7535 7546 7557 7568 7579 
7601 7612 7623 7634 7645 
7656 7667 7678 7689 7700 
7711 7722 7733 7744 7755 
7766 7777 7788 7799 7810 
7821 7832 7843 7854 7865 
7876 7887 7898 7920 7931 
7942 7953 7964 7975 7986 
7997 8008 8019 8107 8118 
8129 8206 8217 8228 8239 
....... 

4.训练案例4(讲)
4.1.训练描述
循环录入某学生的5门课程的成绩并计算平均分。如果某分数录入为负,则停止录入并提示录入错误。
4.2.操作步骤描述
1.创建键盘录入对象
2.定义int类型的变量sum(总分)和avg(平均分),两个变量的初始值位0,String类型的变量name,表示学员姓名
3.定义boolean类型的变量flag(表示该学生的5门成绩是否正确录入,如果有一个为负值,则负值为true,表示录入错误),初始值为false
4.利用for循环,录入5个成绩
(1)判断当前的成绩如果小于0,flag赋值为true,终止for循环
(2)否则,如果当前录入的成绩>=0,累加求和
5.打印结果
(1)如果flag为true,打印录入错误
(2)否则如果flag为false,打印总分和平均分

import java.util.Scanner;

public class Test1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int sum = 0;
		int avg = 0;
		boolean flag = false;
		String name = "wang";
		for (int i = 1; i <= 5; i++) {
			System.out.println("请输入学生的各科成绩");
			int n = sc.nextInt();
			if (n < 0) {
				flag = true;
				break;
			} else {
				sum += n;				avg = (sum / i);

			}
		}
		if (flag) {
			System.out.println("录入失败");	
		} else{
			System.out.println("录入成功");
		System.out.println(name + "的总成绩为:" + sum);
		System.out.println(name + "的平均成绩为:" + avg);
		}
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值