作业习题|从零开始学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-作业习题(一)
文章图片

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-作业习题(一)
文章图片

什么是“水仙花数” 作业习题|从零开始学JAVA-作业习题(一)
文章图片

分析
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-作业习题(一)】前篇文章:无
后篇文章:从零开始学JAVA-作业习题(二)
习题资源来自B站:2020-java-入门到大神-慢慢来,别急

    推荐阅读