从零开始学JAVA-作业习题(一)

习题资源来自B站:2020-java-入门到大神-慢慢来,别急

前篇文章:无
后篇文章:从零开始学JAVA-作业习题(二)


同期文章:从零开始学JAVA-笔记汇总(一)

习题相关章节索引

  • 6.3.3 三元运算符
    • 习题1:两只老虎
    • 习题2:三个和尚
  • 7.1 Scanner使用的基本步骤
    • 习题3:三个和尚加强版
  • 8.1.2.1 if语句
    • 习题4:奇偶数
    • 习题5:考试奖励
  • 8.1.2.2 switch语句
    • 习题6:输出星期
    • 习题7:春夏秋冬
  • 8.1.3.1 for循环
    • 习题8:输出数据
    • 习题9:求和
    • 习题10:求偶数和
    • 习题11:水仙花
    • 习题12:统计水仙花数
  • 8.1.3.2 while循环
    • 习题13:珠穆朗玛峰
  • 8.1.3.7 Random
    • 习题14:猜数字


6.3.3 三元运算符

习题Day1-20200507

习题1:两只老虎

需求:两只老虎
动物园有两只老虎,一直两只老虎体重分别为180KG、200KG,请用程序实现判断两只老虎体重是否相同。
public class OperatorTest01{
	public static void main(String[] args){
	//定义变量,保存两只老虎的体重值。
	int tiger1 = 180;
	int tiger2 = 200;
	
	//利用三运算符比较两只老虎的体重
	String YN = tiger1==tiger2 ? "两只老虎体重相同":"两只老虎体重不同";
	//输出结果
	System.out.println(YN);
	}
}

习题Day2-20200508

习题2:三个和尚

需求:三个和尚
一座寺庙里住着三个和尚,一直他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。
public class OperatorTest01{
	public static void main(String[] args){
      //定义变量,保存和尚射高
      int heShang1 = 150;
      int heShang2 = 210;
      int heShang3 = 165;
      
      //三元运算符获取前两个和尚的身高,并用临时身高变量保存起来。
      int maxHeShang =(heShang1>heShang2)?heShang1:heShang2;
      
      //用三元运算符,将获取的临时身高值与第三个和尚身高进行比较,并将最大身高保存至变量中。
      int maxHeShangPro = (maxHeShang>heShang3)?maxHeShang:heShang3;
      
      //输出结果
      System.out.println("最高的和尚身高为" + maxHeShangPro);
      
      
    }
}

7.1 Scanner使用的基本步骤

习题3:三个和尚加强版

需求:三个和尚加强版
一座寺庙里著这三个和尚,他们的身高必须经过测量得出,请用程序实现获取这三个河上的最高身高。
import java.util.Scanner;
public class ScannerTest01{
	public static void main(String[] args){
	//身高未知,采用键盘录入实现。首先导包然后创建对象。
	Scanner sc= new Scanner(System.in);
	
	//键盘录入三个和尚monk身高分别赋值给三个变量
	System.out.println("Please enter the height of the 1st monk:");
	int heShang1 = sc.nextInt();
	System.out.println("Please enter the height of the 2nd monk:");
	int heShang2 = sc.nextInt();
	System.out.println("Please enter the height of the 3rd monk:");
	int heShang3 = sc.nextInt();
	
	//三元运算符获取前两个和尚的身高,并用临时身高变量保存起来。
	int maxHeShang =(heShang1>heShang2)?heShang1:heShang2;
	
	//用三元运算符,将获取的临时身高值与第三个和尚身高进行比较,并将最大身高保存至变量中。
	int maxHeShangPro = (maxHeShang>heShang3)?maxHeShang:heShang3;
	
	//输出结果
	System.out.println("-------------------------");
	System.out.println("The tallest monk is:" + maxHeShangPro);
    }
}

8.1.2.1 if语句

习题4:奇偶数

需求:奇偶数
任意给出一个整数,请用程序实现判断该整数时奇数还是偶数,并在控制台输出该整数是奇数还是偶数。
import java.util.Scanner;
public class IfTest01{
	public static void main(String[] args){
		//为了体现给出任意一个整数,采用键盘录入一个数据(导包、创建对象、接收数据)
		Scanner sc = new Scanner(System.in);
		System.out.println("Please enter an integer");
		int num = sc.nextInt();
		
		//判断整数是偶数还是奇数,使用if...else结构
		//使用取余运算符实现该功能 number % 2 == 0
		//判断情况后在控制台输出对应内容
		if (num % 2 == 0) {
			System.out.println(num + " is OuShu");
		} else {
			System.out.println(num + " is JiShu");
		}
    }
}

习题5:考试奖励

需求:考试奖励
小明快要期末考试了,小明爸爸对他说,会根据他的不同考试成绩,送她不同的礼物,加入你可以控制小明的的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
import java.util.Scanner;
public class IfTest03{
	public static void main(String[] args){
		//小明的成绩由我决定!采用键盘录入一个数据(导包、创建对象、接收数据)
		Scanner sc = new Scanner(System.in);
		System.out.println("Please enter Xiaoming\'s score");
		int score= sc.nextInt();
		
		//判断整数是偶数还是奇数,使用if...else结构
		//使用取余运算符实现该功能 number % 2 == 0
		//判断情况后在控制台输出对应内容
		if ( score <= 100 && score >=95 ) { //我的电脑输入中文会报错,所以强行全改成了英文。
			System.out.println("Xiao Ming took a score of " + score );
		} else if ( score <= 94&& score >=85 ) {
			System.out.println("Xiao Ming took a score of " + score );
		} else if ( score <= 84 && score >=60 ) {
			System.out.println("Xiao Ming took a score of " + score );
		} else if ( score <60 ) {
			System.out.println("Xiao Ming took a score of " + score );
		} else { //请输入合法数值
			System.out.println("Please enter a legal value");
		}
    }
}
习题5/备注/总结

老师专门设置了边界数据,但是我跟老师的程序都能做到验证错误数据的功能


if( score>100 || score <0){ //设置边界数据
       ~~~~~~       System.out.println(“Please enter a legal value”);
}

习题Day3-20200509
工作原因压缩了每日两小时的学习时间

8.1.2.2 switch语句

习题6:输出星期

需求:输出星期
键盘录入一个星期数(1、2、3…7),输出对应的星期一,星期二…星期日
import java.util.Scanner;
public class SwitchTest01{
	public static void main(String[] args){
		//键盘录入
		Scanner sc = new Scanner(System.in);
		
		//请输入1-7的整数
		System.out.println("Please enter an integer in the range 1-7");
		int week = sc.nextInt();
		
		//计算表达式的值,并将其与分支体内的case1相比较,匹配则中断,否则继续执行直到匹配或者执行default。
		switch (week) {
		case 1 :
			System.out.println("Monday");
			break;
		case 2 :
			System.out.println("Tuesday");
			break;
		case 3 :
			System.out.println("Wednesday");
			break;
		case 4 :
			System.out.println("Thursday");
			break;
		case 5 :
			System.out.println("Friday");
			break;
		case 6 :
			System.out.println("Saturday");
			break;
		case 7 :
			System.out.println("Sunday");
			break;
			
		//超过范围时提示:输入的数字不合法
		default :
			System.out.println("The number entered is illegal");
		}
    }
}

习题7:春夏秋冬

需求:春夏秋冬
利用程序实现根据输入月份判断对应季节,并输出
春:3、4、5
夏:6、7、8
秋:9、10、11、
冬:1、2、12
import java.util.Scanner;
public class SwitchTest02{
	public static void main(String[] args){
		//键盘录入
		Scanner sc = new Scanner(System.in);
		
		//请输入1-12的整数
		System.out.println("Please enter an integer in the range 1-12");
		int month= sc.nextInt();
		
		switch (month) {
		case 3 :
		case 4:
		case 5:
			System.out.println("Spring");
			break;
		case 6:
		case 7 :
		case 8:
			System.out.println("Summer");
			break;
		case 9:
		case 10 :
		case 11 :
			System.out.println("Autumn");
			break;
		case 1:
		case 2 :
		case 12 :
			System.out.println("Winter");
			break;
			
		//超过范围时提示:输入的数字不合法
		default :
			System.out.println("The number entered is illegal");
		}
    }
}
习题7/备注/总结

case穿透


当case分了很多时(如每个月份都分一个单独的case,导致switch分支体内出现13个case)
     ~~~~     如果在某个case控制的语句体后面忘记写break; 则会发生case穿透,会导致在不判断下一个case值的情况下,继续向下运行直到遇见break或者整个switch语句结束。(default后加不加break都不会产生case穿透)
         ~~~~~~~~         个人理解:default在分支体最后部分,所以不会被穿透。
以下为case穿透案例

从零开始学JAVA-作业习题(一)_第1张图片
case穿透案例
习题Day4-20200510

8.1.3.1 for循环

习题8:输出数据

需求:输出数据
在控制台输出1-5和5-1的数据
public class ForTest01{
	public static void main(String[] args){
		//输出1-5
		System.out.println("输出1-5");
		for (int i = 1;i <= 5;i++) {
			System.out.println(i);
		}
		
		//输出5-1
		System.out.println("输出5-1");
		for (int i = 5;i >= 1;i--) {
			System.out.println(i);
		}
    }
}

习题9:求和

需求:求和
求1-5之间的数据和,并把求和结果在控制台输出
public class ForTest02{
	public static void main(String[] args){
		//声明一个存储和值的变量
		int sum = 0;
		
		//下面这个变量能够控制从数字 1加到target(可以自定义范围),如果是5则是1-5的和,如果target=100 则是1-100的和
		int target = 5;
		
		for (int i = 1;i <=target ;i++) {
			sum = sum + i;
			
			//没次循环都输出一次i,print后面如果不加ln 则不换行输出。
			System.out.print(i);
			
			//当 i=targe t时不应输出之后的加号。具体说明如下:
			//当target = 5 时
			//不加该break的情况下会出现:     1+2+3+4+5+=15(最后多了个加号)
			//如果加上break则会显示正确格式: 1+2+3+4+5=15
			if (i == target ){
				break;
			}
			//使输出结果更明确且易读
			System.out.print("+");
		}
		System.out.println("=" + sum);
    }
}

习题10:求偶数和

需求:求偶数和
求1-100之间的偶数和,并把求和结果在控制台输出
public class ForTest03{
	public static void main(String[] args){
		int sum = 0;
		for (int i =1;i<=100;i++) {
			if (i%2==0) {
				sum +=i;
			}
		}
		System.out.println("1-100之间的偶数和为" + sum);
    }
}

习题11:水仙花

需求:水仙花
在控制台输出所有的”水仙花数“
  • 何谓”水仙花数“,如图所示:
从零开始学JAVA-作业习题(一)_第2张图片
什么是“水仙花数”
从零开始学JAVA-作业习题(一)_第3张图片
分析
public class ForTest04{
	public static void main(String[] args){
		//循环遍历所有三位数
		for (int i = 100;i <= 999;i++) {
			int ge = i%10;
			int shi = i/10%10;
			int bai = i/10/10;
			
			//利用if语句筛选符合条件的水仙花数
			//利用Math.pow(num,n)函数实现立方计算,用该函数替代num*num*num的写法
			if (i == Math.pow(ge,3) + Math.pow(shi,3) + Math.pow(bai,3) ) {
				System.out.println(i);
			}
		}
    }
}

习题12:统计水仙花数

需求:
统计”水仙花数“一共有多少个,并在控制台输出个数
public class ForTest05{
	public static void main(String[] args){
		//定义变量count,用于保存”水仙花数“的数量,初始之为0;
		int count = 0;
		
		
		//循环遍历所有三位数
		for (int i = 100;i <= 999;i++) {
			int ge = i%10;
			int shi = i/10%10;
			int bai = i/10/10;
			
			//利用if语句筛选符合条件的水仙花数
			//利用Math.pow(num,n)函数实现立方计算,用该函数替代num*num*num的写法
			if (i == Math.pow(ge,3) + Math.pow(shi,3) + Math.pow(bai,3) ) {
				//注释下行代码,实现仅输出水仙花个数的效果
				//System.out.println(i);
				
				//记录个数
				count++;
			}
		}
		//输出水仙花的个数
		System.out.println("一共有水仙花数" + count + "个");
    }
}
习题Day5-20200511

8.1.3.2 while循环

习题13:珠穆朗玛峰

需求:
珠穆朗玛峰高8844430毫米,假如有足够大的纸,厚度为0.1毫米,请问折叠多少次可以折成珠穆朗玛峰的高度?
public class WhileTest01{
	public static void main(String[] args){
		//定义计数器
		int count = 0;
		//定义纸张厚度
		double paper = 0.1; 
		//定义珠峰高度
		int zf = 8844430;
		
		while (paper <= zf) {
			paper = paper*2;
			count++;
		}
		System.out.println(count);
		
    }
}
习题Day6-20200512

今日无习题,加班只学了一小时多

习题Day8-20200513

8.1.3.7 Random

习题14:猜数字

需求:猜数字
程序自动生成一个1-100之间的数字,实用程序实现猜出这个数字是多少
当猜错的时候根据不同的情况给出相应的提示
◉如果猜的数字比真实数字大,提示猜大了
◉如果猜的数字比真实数字小,提示猜小了
◉如果猜的数字与真实数字相等,提示猜中了

我自己的思路:
1、创建Random对象,负责生成随机数
2、需要创建scanner对象 负责输入接收数字(思路调整:需要放进循环体中)
3、输入数字与Random对象生成的随机数做循环判断,直到猜中为止
//由于不知道猜几次才会中,因此使用while循环比较合适。
//while中嵌套if

import java.util.Random;
import java.util.Scanner;

public class RandomTest001{
	public static void main(String[] args){
		//创建Random对象生成随机数
		Random r = new Random();
		System.out.println("Please Guess");
		int number = r.nextInt(100)+1;
		
		//开启无限循环,直到猜中才用break退出程序
		while(true){
			//设计程序负责比较大小
			Scanner sc = new Scanner(System.in);
			int guessNumber = sc.nextInt();
			
			//设计程序负责比较大小
			if (number>guessNumber) {
				System.out.println("随机生成的数字**>" + guessNumber);
			}else if(number
习题14/备注/总结

这个我写了很久,因为思路有些小问题。
我把while的判断写为
while(number!=guseeNumber){}


后发现需要把Scanner收入循环体内,但是我的思路是在wahile外面再套一个while(ture){
         ~~~~~~~~         while(number!=guseeNumber){
         ~~~~~~~~         }
}
导致一直出现问题。


同期文章:从零开始学JAVA-笔记汇总(一)


前篇文章:无
后篇文章:从零开始学JAVA-作业习题(二)
习题资源来自B站:2020-java-入门到大神-慢慢来,别急

你可能感兴趣的:(作业习题,从零开始学JAVA,java)