案例一:奇偶数
需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数
分析:1.为了体现任意给出的一个整数,采用键盘录入一个数据
2.判断整数是偶数还是奇数要分两种情况进行判断,使用if...else结构
3.判断是否偶数需要使用取余运算符实现该功能
4.根据判定情况,在控制台输出对应的内容
package test;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
// 1.为了体现任意给出的一个整数,采用键盘录入一个数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
// 2.判断整数是偶数还是奇数要分两种情况进行判断,使用if...else结构
// 3.判断是否偶数需要使用取余运算符实现该功能
// 4.根据判定情况,在控制台输出对应的内容
if (number % 2 == 0){
System.out.println(number + "是偶数");
}else {
System.out.println(number + "是奇数");
}
}
}
案例二:考试奖励
需求:小明快要期末考试了,小明对他爸爸说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出(95~100自行车,90~94游乐园,80~89玩具车,80以胖揍)
分析:1.小明的考试成绩未知,可以使用键盘录入的方式获取值,使用键盘录入功能需要导包,创建对象,接受数据
2.由于奖励种类较多,属于多种判断,采用if...else...if格式实现
3.为每种判断设置对应的条件
4.为每种判断设置对应的奖励
package test;
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) {
// 1.小明的考试成绩未知,可以使用键盘录入的方式获取值,使用键盘录入功能需要导包,创建对象,接受数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入小明的考试成绩:");
int score = sc.nextInt();
// 2.由于奖励种类较多,属于多种判断,采用if...else...if格式实现
// 3.为每种判断设置对应的条件
// 4.为每种判断设置对应的奖励
if(score > 100 || score <0){
System.out.println("您输入的分数有误");
}else if(score >= 95 && score <= 100){
System.out.println("奖励自行车一辆");
}else if (score >= 90 && score <= 94){
System.out.println("奖励游乐场一次");
}else if (score >= 80 && score <= 89){
System.out.println("奖励玩具车一个");
}else {
System.out.println("奖励胖揍一顿");
}
}
}
案例三:春夏秋冬
需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出
春:3、4、5
夏:6、7、8
秋:9、10、11
冬:1、2、12
分析:1.键盘录入月份数据,使用变量接收
2.多情况判断,这里采用switch语句实现
3.在每种情况中,完成输出对应的季节
package test;
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
// 1.键盘录入月份数据,使用变量接收
Scanner sc = new Scanner(System.in);
System.out.println("请输入月份:");
int month = sc.nextInt();
// 2.多情况判断,这里采用switch语句实现
// 3.在每种情况中,完成输出对应的季节
switch (month){
case 3:
case 4:
case 5:
System.out.println("现在是春季");
break;
case 6:
case 7:
case 8:
System.out.println("现在是夏季");
break;
case 9:
case 10:
case 11:
System.out.println("现在是秋季");
break;
case 12:
case 1:
case 2:
System.out.println("现在是冬季");
break;
default:
System.out.println("您输入的月份有误");
}
}
}
案例四:求和
需求:求1-5之间的数据和,并把求和结果在控制台输出
分析:1.求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
2.从1开始到5结束的数据使用循环结构完成
3.将反复进行的事情写入循环结构内部,此处反复进行的事情是将数据i加到用于保存最终求和的变量sum中
4.当循环执行完毕时,将最终数据打印出来
package test;
public class Test7 {
public static void main(String[] args) {
// 1.求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
int sum = 0;
// 2.从1开始到5结束的数据使用循环结构完成
for (int i = 1; i <= 5; i++){
// 3.将反复进行的事情写入循环结构内部,此处反复进行的事情是将数据i加到用于保存最终求和的变量sum中
sum += i;
}
// 4.当循环执行完毕时,将最终数据打印出来
System.out.println("1-5之间的数字和为:"+sum);
}
}
案例五:求偶数和
需求:求1-100之间的偶数和,并把求和结果在控制台输出
分析:1.对1-100的数据求和与1-5的数据几乎完全一样,仅仅是结束条件不同
2.对1-100的偶数求和,需要对求和操作添加限制条件
3.限制条件是偶数才参与运算,因此条件应该是判断是否是偶数
4.当循环执行完毕时,将最终数据打印出来
package test;
public class Test8 {
public static void main(String[] args) {
// 1.对1-100的数据求和与1-5数据求和几乎完全一样,仅仅是结束条件不同
int sum = 0;
for (int i = 1; i <= 100; i++){
// 2.对1-100的偶数求和,需要对求和操作添加限制条件
// 3.限制条件是偶数才参与运算,因此条件应该是判断是否是偶数
if (i % 2 == 0){
sum += i;
}
}
// 4.当循环执行完毕时,将最终数据打印出来
System.out.println("1-100之间的偶数和是:"+sum);
}
}
案例六:水仙花
需求:在控制台输出所有的"水仙花数"
分析:1.输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
2.不是每个三位数都是水仙花数,因此需要判定,满足条件的数字才进行输出
3.判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
4.在计算之前获取三位数中每个位上的值
package test;
public class Test9 {
public static void main(String[] args) {
// 1.输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
for (int i = 100; i < 1000; i++ ){
// 2.不是每个三位数都是水仙花数,因此需要判定,满足条件的数字才进行输出
// 3.判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
// 4.在计算之前获取三位数中每个位上的值
int bit = i % 10;
int ten = i / 10 % 10;
int hundred = i / 100 % 10;
if (bit * bit * bit + ten * ten *ten + hundred * hundred *hundred == i){
System.out.println(i+"是水仙花数");
}
}
}
}
案例七:统计
需求:统计"水仙花数"一共有多少个,并在控制台输出个数
分析:1.定义变量count,用于保存"水仙花数"的数量,初始值为0
2.在判断水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1
3.打印输出最终结果
package test;
public class Test10 {
public static void main(String[] args) {
// 1.定义变量count,用于保存"水仙花数"的数量,初始值为0
int count = 0;
for (int i = 100; i < 1000; i++ ){
// 2.在判断水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1
int bit = i % 10;
int ten = i / 10 % 10;
int hundred = i / 100 % 10;
if (bit * bit * bit + ten * ten *ten + hundred * hundred *hundred == i){
count ++;
}
}
// 3.打印输出最终结果
System.out.println("水仙花共有:"+count+"个");
}
}
案例八:珠穆朗玛峰
需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度
分析:1.因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
2.循环的执行过程中每次纸张折叠,纸张的厚度要加倍,因此需要先定义纸张的厚度
3.折叠的过程中当纸张厚度大于珠穆朗玛峰就停止了,因此急需执行的要求是纸张的厚度小于珠峰高度
4.设置一个计数器,在循环中执行累加,对应折叠了多少次
package test;
public class Test11 {
public static void main(String[] args) {
int everest = 8844430;
// 1.因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
// 2.循环的执行过程中每次纸张折叠,纸张的厚度要加倍,因此需要先定义纸张的厚度
double paperDepth = 0.1;
// 3.折叠的过程中当纸张厚度大于珠穆朗玛峰就停止了,因此急需执行的要求是纸张的厚度小于珠峰高度
// 4.设置一个计数器,在循环中执行累加,对应折叠了多少次
int count = 0;
while (paperDepth <= everest){
paperDepth *= 2;
count ++;
}
System.out.println("需要折叠"+count+"次");
}
}
案例九:猜数字
需求:程序自动生成一个1-100之间的数字,实用程序实现猜出这个数字是多少
分析:1.要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100
2.因为无法预知几次能够猜中,因此猜数字这个操作应该是反复进行的,需要使用循环,而while循环通常用于未知循环次数的循环
3.使用程序实现猜数字,每次均要时输入猜测的数字值,需要使用键盘录入实现
4.比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if...else...if...格式,根据不同情况进行猜测结果显示,当猜中后使用break结束循环即可
package test;
import java.util.Random;
import java.util.Scanner;
public class Test12 {
public static void main(String[] args) {
// 1.要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100
Random r = new Random();
int number = r.nextInt(100)+1;
// 2.因为无法预知几次能够猜中,因此猜数字这个操作应该是反复进行的,需要使用循环,而while循环通常用于未知循环次数的循环
while(true) {
// 3.使用程序实现猜数字,每次均要时输入猜测的数字值,需要使用键盘录入实现
Scanner sc = new Scanner(System.in);
System.out.println("请输入您猜测的数字:");
int guessNumber = sc.nextInt();
// 4.比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if...else...if...格式,根据不同情况进行猜测结果显示,当猜中后使用break结束循环即可
if (guessNumber > number){
System.out.println("您猜测的数大了");
}else if (guessNumber < number){
System.out.println("您猜测的数小了");
}else{
System.out.println("恭喜您猜中了");
break;
}
}
}
}