习题资源来自B站:2020-java-入门到大神-慢慢来,别急
前篇文章:无
后篇文章:从零开始学JAVA-作业习题(二)
同期文章:从零开始学JAVA-笔记汇总(一)
习题相关章节索引
- 6.3.3 三元运算符
- 7.1 Scanner使用的基本步骤
- 8.1.2.1 if语句
- 8.1.2.2 switch语句
- 8.1.3.1 for循环
- 习题8:输出数据
- 习题9:求和
- 习题10:求偶数和
- 习题11:水仙花
- 习题12:统计水仙花数
- 8.1.3.2 while循环
- 8.1.3.7 Random
6.3.3 三元运算符
习题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);
}
}
习题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");
}
}
}
老师专门设置了边界数据,但是我跟老师的程序都能做到验证错误数据的功能
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");
}
}
}
case穿透
当case分了很多时(如每个月份都分一个单独的case,导致switch分支体内出现13个case)
~~~~ 如果在某个case控制的语句体后面忘记写break; 则会发生case穿透,会导致在不判断下一个case值的情况下,继续向下运行直到遇见break或者整个switch语句结束。(default后加不加break都不会产生case穿透)
~~~~~~~~ 个人理解:default在分支体最后部分,所以不会被穿透。
以下为case穿透案例
case穿透案例
8.1.3.1 for循环
习题8:输出数据
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:水仙花
什么是“水仙花数”
分析
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 + "个");
}
}
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);
}
}
今日无习题,加班只学了一小时多
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
这个我写了很久,因为思路有些小问题。
我把while的判断写为
while(number!=guseeNumber){}
后发现需要把Scanner收入循环体内,但是我的思路是在wahile外面再套一个while(ture){
~~~~~~~~ while(number!=guseeNumber){
~~~~~~~~ }
}
导致一直出现问题。
同期文章:从零开始学JAVA-笔记汇总(一)
前篇文章:无
后篇文章:从零开始学JAVA-作业习题(二)
习题资源来自B站:2020-java-入门到大神-慢慢来,别急