Java达内教学初级教程4

sqyihua

贡献于2017-09-05

字数:10523 关键词: Java Java开发 教学

Top JAVA Fundamental DAY04 1. 猜数字游戏 V1.0 2. 猜数字游戏 V2.0 3. 随机加法运算器 1 猜数字游戏 V1.0 1.1 问题 有猜数字游戏,其游戏规则为:程序内置一个 1 到 1000 之间的数字作为猜测的结果,由用户猜测此数字。用户每猜测一次,由系统提示猜测结果:大了、小了或者猜对了;直到用户猜对结果,则提示游戏结束。用户可以提前退出游戏,即,游戏过程中,如果用户录入数字0,则游戏终止。游戏的交互过程如下: 1. 游戏刚开始,即提示用户在控制台录入所猜测的数字,交互过程如图-1所示: 图-1 2、用户录入所猜测的数字后,程序进行判断:如果用户所猜测的数字大于结果,则提示“太大了!”;如果用户所猜测的数字小于结果,则提示“太小了”。每次提示猜测结果后,并提醒用户继续猜测。交互过程如图-2所示: 图-2 3、如果用户猜测正确,则由系统提示“恭喜,你猜对了!”,游戏结束。交互过程如图-3所示: 图-3 4、如果用户希望提前退出游戏,则可以录入数字 0,游戏结束。交互过程如图-4所示: 图-4 1.2 方案 首先,此案例中,需要产生一个 1 到 1000 之间的随机整数,该数值就是用户要猜测的结果;然后,提示用户进行第一次猜测,并得到用户从界面所录入的数字。 因为猜测的次数不确定,则使用 while 循环来构建猜测的过程:判断用户所猜测的数字是否与结果相同,只要猜测不正确,则循环继续。每次循环中,首先判断用户录入的数字是否为 0,如果是,则使用 break 退出循环;否则,根据比较结果输出提示信息(“太大了”或者“太小了”),并提示用户继续下一次猜测。 如果用户猜测正确或者录入数字 0,则 while 循环结束。循环结束后,需要判断用户最后一次所录入的数字,如果猜测正确,则提示用户“恭喜,你猜对了!”;如果录入的为数字0 ,则提示用户“真遗憾,下次再挑战吧!”,然后程序结束。程序的流程如图-5所示: 图-20 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:定义类及 main方法 首先定义一个名为NumberGuessV01的类,并在类中添加Java应用程序的主方法main,代码如下所示: 1. public class NumberGuessV01 { 2.     public static void main(String[] args) { 3.     } 4. } 步骤二:读取第一次猜测结果 在main方法中,提示用户录入所猜测的数字,作为第一次猜测;然后,实例化Scanner类,并调用Scanner类的nextInt 方法接收用户从控制台输入的数字。代码如下所示: 1. import java.util.Scanner; 2. public class NumberGuessV01 { 3.     public static void main(String[] args) { 4.         //生成一个随机数作为猜测的结果 5.         int num = (int) (Math.random() * 1000) + 1; 6. 7.         //第一次猜测 8.         System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 9.         Scanner s = new Scanner(System.in); 10.         int guest = s.nextInt(); 11. } 12. } 注意:此步骤中,需要导入java.util包下的Scanner类。 步骤三:构建循环 使用 while 循环,判断用户所猜测的数字是否与结果相同:只要猜测不正确,则循环继续。每次循环中,需要使用if-else结构判断用户所录入的数字。首先,判断录入的数字是否为 0,如果为 0 ,表示用户希望退出游戏,则使用 break 退出循环;然后比较猜测的数字和实际数字的大小,并根据比较结果输出提示信息(“太大了”或者“太小了”),然后提示用户继续下一次猜测,并调用Scanner类的nextInt 方法接收用户录入的下一个数字。代码如下所示: 1. import java.util.Scanner; 2. public class NumberGuessV01 { 3.     public static void main(String[] args) { 4.         //生成一个随机数作为猜测的结果 5.         int num = (int) (Math.random() * 1000) + 1; 6. 7.         //第一次猜测 8.         System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 9.         Scanner s = new Scanner(System.in); 10.         int guest = s.nextInt(); 11. 12.         //如果猜测错误,则继续 13.         while (guest!=num) { 14.             //输入为0,则退出循环;否则判断数字 15.             if(guest == 0){ 16.                 break; 17.             } else if (guest > num) { 18.                 System.out.println("太大了!"); 19.             } else { 20.                 System.out.println("太小了!"); 21.             } 22.             System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 23.             guest = s.nextInt(); 24.         } 25. } 26. } 步骤四:游戏结束 如果用户猜测正确或者录入数字 0 中止游戏,则 while 循环结束。在while 循环结束后,需要判断用户最后一次所录入的数字,如果猜测正确,则提示用户“恭喜,你猜对了!”;如果录入的为数字0 ,则提示用户“真遗憾,下次再挑战吧!”。最后将 scanner对象关闭,程序结束。代码如下所示: 1. import java.util.Scanner; 2. public class NumberGuessV01 { 3.     public static void main(String[] args) { 4.         //生成一个随机数作为猜测的结果 5.         int num = (int) (Math.random() * 1000) + 1; 6. 7.         //第一次猜测 8.         System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 9.         Scanner s = new Scanner(System.in); 10.         int guest = s.nextInt(); 11. 12.         //如果猜测错误,则继续 13.         while (guest!=num) { 14.             //输入为0,则退出循环;否则判断数字 15.             if(guest == 0){ 16.                 break;             17.             }else if (guest > num) { 18.                 System.out.println("太大了!"); 19.             } else { 20.                 System.out.println("太小了!"); 21.             } 22.             System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 23.             guest = s.nextInt(); 24.         } 25. 26.         //提示用户最终结果 27.         if(guest == num) { 28.             System.out.println("恭喜,你猜对了!"); 29.         }else{ 30.             System.out.println("真遗憾,下次再挑战吧!"); 31.         } 32.         s.close(); 33. } 34. } 1.4 完整代码 本案例的完整代码如下所示: 1. import java.util.Scanner; 2. public class NumberGuessV01 { 3.     public static void main(String[] args) { 4.         //生成一个随机数作为猜测的结果 5.         int num = (int) (Math.random() * 1000) + 1; 6. 7.         //第一次猜测 8.         System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 9.         Scanner s = new Scanner(System.in); 10.         int guest = s.nextInt(); 11. 12.         //如果猜测错误,则继续 13.         while (guest!=num) { 14.             //输入为0,则退出循环;否则判断数字 15.             if(guest == 0){ 16.                 break;             17.             } else if (guest > num) { 18.                 System.out.println("太大了!"); 19.             } else { 20.                 System.out.println("太小了!"); 21.             } 22.             System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 23.             guest = s.nextInt(); 24.         } 25. 26.         //提示用户最终结果 27.         if(guest == num) { 28.             System.out.println("恭喜,你猜对了!"); 29.         }else{ 30.             System.out.println("真遗憾,下次再挑战吧!"); 31.         } 32.         s.close(); 33. } 34. } 隐藏 2 猜数字游戏 V2.0 2.1 问题 使用 do-while 语句实现猜数字游戏,界面的交互过程和上一个案例相同。 2.2 方案 此案例的实现方案和之前的案例类似。 首先,此案例中,需要产生一个 1 到 1000 之间的随机整数,该数值就是用户要猜测的结果;然后,提示用户进行第一次猜测,并得到用户从界面所录入的数字。 因为猜测的次数不确定,则使用do-while 循环来构建猜测的过程:判断用户所猜测的数字是否与结果相同,只要猜测不正确,则循环继续。每次循环中,首先判断用户录入的数字是否为 0,如果是,则使用 break 退出循环;否则,根据比较结果输出提示信息(“太大了”或者“太小了”),并提示用户继续下一次猜测。 如果用户猜测正确或者录入数字 0,则循环结束。循环结束后,需要判断用户最后一次所录入的数字,如果猜测正确,则提示用户“恭喜,你猜对了!”;如果录入的为数字0 ,则提示用户“真遗憾,下次再挑战吧!”,然后程序结束。程序的流程如图-6所示: 图-6 2.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:定义类及 main方法 首先定义一个名为NumberGuessV03 的类,并在类中添加Java应用程序的主方法main,代码如下所示: 1. public class NumberGuessV03 { 2.     public static void main(String[] args) { 3.     } 4. } 步骤二:准备录入 在main方法中,生成一个随机数作为猜测的结果,然后实例化Scanner类,用于接收用户从控制台输入的数字,还需要声明变量用于存储用户所录入的数字。代码如下所示: 1. import java.util.Scanner; 2. public class NumberGuessV03 { 3.     public static void main(String[] args) { 4.         //生成一个随机数作为猜测的结果 5.         int num = (int) (Math.random() * 1000) + 1; 6. 7.         //准备输入 8.         Scanner s = new Scanner(System.in); 9.         int guest = -1; 10. } 11. } 注意:此步骤中,需要导入java.util包下的Scanner类。 步骤三:构建循环 使用 do-while 循环,提示用户进行猜测,并调用Scanner类的nextInt 方法接收用户录入的数字,然后判断用户所猜测的数字是否与结果相同:只要猜测不正确,则循环继续。 每次循环中,需要使用if-else结构判断用户所录入的数字。首先,判断录入的数字是否为 0,如果为 0 ,表示用户希望退出游戏,则使用 break 退出循环;然后比较猜测的数字和实际数字的大小,并根据比较结果输出提示信息(“太大了”或者“太小了”)。代码如下所示: 1. import java.util.Scanner; 2. public class NumberGuessV03 { 3.     public static void main(String[] args) { 4.         //生成一个随机数作为猜测的结果 5.         int num = (int) (Math.random() * 1000) + 1; 6. 7.         //准备输入 8.         Scanner s = new Scanner(System.in); 9.         int guest = -1; 10.         do{ 11.             System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 12.             guest = s.nextInt(); 13.             //判断:输入0,则中止 14.             if(guest == 0){ 15.                 break; 16.             } else if(guest > num) { 17.                 System.out.println("太大了!"); 18.             } else if(guest < num){ 19.                 System.out.println("太小了!"); 20.             } 21.         }while(guest!=num); 22. } 23. } 步骤四:游戏结束 如果用户猜测正确或者录入数字 0 中止游戏,则循环结束。在循环结束后,需要判断用户最后一次所录入的数字,如果猜测正确,则提示用户“恭喜,你猜对了!”;如果录入的为数字0 ,则提示用户“真遗憾,下次再挑战吧!”。最后将 scanner对象关闭,程序结束。代码如下所示: 1. import java.util.Scanner; 2. public class NumberGuessV03 { 3.     public static void main(String[] args) { 4.         //生成一个随机数作为猜测的结果 5.         int num = (int) (Math.random() * 1000) + 1; 6. 7.         //准备输入 8.         Scanner s = new Scanner(System.in); 9.         int guest = -1; 10.         do{ 11.             System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 12.             guest = s.nextInt(); 13.             //判断:输入0,则中止 14.             if(guest == 0){ 15.                 break; 16.             } else if(guest > num) { 17.                 System.out.println("太大了!"); 18.             } else if(guest < num){ 19.                 System.out.println("太小了!"); 20.             } 21.         }while(guest!=num); 22. //提示用户最终结果 23.         if(guest == num) { 24.             System.out.println("恭喜,你猜对了!"); 25.         }else{ 26.             System.out.println("真遗憾,下次再挑战吧!"); 27.         } 28.         s.close(); 29. } 30. } 2.4 完整代码 本案例的完整代码如下所示: 1. import java.util.Scanner; 2. public class NumberGuessV03 { 3.     public static void main(String[] args) { 4.         //生成一个随机数作为猜测的结果 5.         int num = (int) (Math.random() * 1000) + 1; 6. 7.         //准备输入 8.         Scanner s = new Scanner(System.in); 9.         int guest = -1; 10.         do{ 11.             System.out.print("请输入你猜测的数字(1-1000),退出请按0:"); 12.             guest = s.nextInt(); 13.             //判断:输入0,则中止 14.             if(guest == 0){ 15.                 break; 16.             } else if(guest > num) { 17.                 System.out.println("太大了!"); 18.             } else if(guest < num){ 19.                 System.out.println("太小了!"); 20.             } 21.         }while(guest!=num); 22.          23.         //提示用户最终结果 24.         if(guest == num) { 25.             System.out.println("恭喜,你猜对了!"); 26.         }else{ 27.             System.out.println("真遗憾,下次再挑战吧!"); 28.         } 29.         s.close();     30.     } 31. } 隐藏 3 随机加法运算器 3.1 问题 有加法运算器程序,其规则为:程序依次出 10 道加法题目,由用户输入题目的答案。用户每答完一道题,由系统提示结果:答错了或者答对了。10 道题目答完之后,系统计算得分并输出。如果用户希望提前结束,则可以输入-1提前退出。 本案例要求使用交互的方式实现此游戏,交互过程为: 1、程序开始,即出现一道加法题(两个加数均为0到99之间的随机整数),并提示用户输入该题目的答案(输入-1则会提前退出程序)。交互过程如图-7所示: 图-7 2、用户录入后,程序进行判断:如果用户录入的答案错误,则提示“Error!”;如果答案正确,则提示“Correct!”。然后给出下一道题目,并提醒用户继续答题。用户答完10道题目后,系统给出用户的得分并显示(每道题目10分),程序结束。交互过程如图-8所示: 图-8 3、如果用户录入-1,则表示希望提前退出程序,系统将提示用户的分数,且程序结束。交互过程如图-9所示: 图-9 3.2 方案 此案例中,需要使用 for 循环产生 10 道加法题目。 在每次循环中,需要产生两个0到99之间的随机整数,作为加法题目的两个加数,并计算出正确答案;然后,输出题目,并提示用户进行答题,从而得到用户从界面所录入的数字。 得到用户的录入后,进行判断:如果用户录入的为-1,则需要提前退出循环;如果用户录入的答案错误,则提示“Error!”,并继续下一次答题;如果用户录入的答案正确,则提示“Correct!”,继续下一次答题。 循环结束后,计算用户的得分并输出,程序结束。注:用户得分的规则是,每答对一道题,得10分,满分为100分。 程序的流程如图-10所示: 图-10 3.3 步骤 实现此案例需要按照如下步骤进行。 步骤一:定义类及 main方法 首先定义一个名为AdditionTest的类,并在类中添加Java应用程序的主方法main,代码如下所示: 1. public class AdditionTest { 2.     public static void main(String[] args) { 3.     } 4. } 步骤二:准备 在main方法中,输出程序即将开始的提示信息,并实例化Scanner类,用于准备接收用户从控制台输入的数字,然后,声明变量 score 用于记载用户的得分。代码如下所示: 1. import java.util.Scanner; 2. public class AdditionTest { 3.     public static void main(String[] args) { 4.         System.out.println("将开始 10 次加法测试... "); 5.         Scanner scanner = new Scanner(System.in); 6.         //用于记载分数 7.         int score = 0;         8.     }     9. } 注意:此步骤中,需要导入java.util包下的Scanner类。 步骤三:构建循环 使用 for 语句,构建 10 次循环。 在循环中,使用 Math类的random 方法返回两个 0 到 1 之间的随机数(包含 0,不包含 1),然后将所产生的数值乘以 100,并取其整数部分,则可以生成两个 0 到 99 之间的随机整数(包含0,也包含 99),表示加法题目中的两个加数。 计算加法运算的结果,并输出题目,代码如下: 1. import java.util.Scanner; 2. public class AdditionTest { 3.     public static void main(String[] args) { 4.         System.out.println("将开始 10 次加法测试... "); 5.         Scanner scanner = new Scanner(System.in); 6.         //用于记载分数 7.         int score = 0; 8.         //构建 10 次循环 9.         for (int i=1;i<=10;i++) { 10.             //随机生成两个加数 11.             int a = (int) (Math.random() * 100); 12.             int b = (int) (Math.random() * 100); 13.             int result = a + b; 14.              15.             //输出需要计算的加法表达式 16.             System.out.println("(" + i + "). " + a + " + " + b + " = ?"); 17.             System.out.print("请输入答案(输入-1退出): "); 18. } 19.     } 20. } 步骤四:判断录入 得到用户的录入后,进行判断:如果用户录入的为-1,则需要提前退出循环;如果用户录入的答案错误,则提示“Error!”,并继续下一次答题;如果用户录入的答案正确,则提示“Correct!”,并计算用户的得分,然后继续下一次的答题。用户得分的规则是,每答对一题,得10分(满分为 100 分)。 代码如下所示: 1. import java.util.Scanner; 2. public class AdditionTest { 3.     public static void main(String[] args) { 4.         System.out.println("将开始 10 次加法测试... "); 5.         Scanner scanner = new Scanner(System.in); 6.         //用于记载分数 7.         int score = 0; 8.         //构建 10 次循环 9.         for (int i=1;i<=10;i++) { 10.             //随机生成两个加数 11.             int a = (int) (Math.random() * 100); 12.             int b = (int) (Math.random() * 100); 13.             int result = a + b; 14.              15.             //输出需要计算的加法表达式 16.             System.out.println("(" + i + "). " + a + " + " + b + " = ?"); 17.             System.out.print("请输入答案(输入-1退出): "); 18.             //读入结果 19.             int answer = scanner.nextInt(); 20.             //判断对错 21.             if(answer == -1){ 22.                 break; 23.             }else if (answer != result) {                 24.                 System.out.println("Error!"); 25.                 continue; 26.             } else { 27.                 score += 10; 28.                 System.out.println("Correct!"); 29.             }             30.         } 31.     }     32. } 步骤五:输出结果 最后,需要将scanner对象关闭,并输出结果,代码如下所示: 1. import java.util.Scanner; 2. public class AdditionTest { 3.     public static void main(String[] args) { 4.         System.out.println("将开始 10 次加法测试... "); 5.         Scanner scanner = new Scanner(System.in); 6.         //用于记载分数 7.         int score = 0; 8.         //构建 10 次循环 9.         for (int i=1;i<=10;i++) { 10.             //随机生成两个加数 11.             int a = (int) (Math.random() * 100); 12.             int b = (int) (Math.random() * 100); 13.             int result = a + b; 14.              15.             //输出需要计算的加法表达式 16.             System.out.println("(" + i + "). " + a + " + " + b + " = ?"); 17.             System.out.print("请输入答案(输入-1退出): "); 18.             //读入结果 19.             int answer = scanner.nextInt(); 20.             //判断对错 21.             if(answer == -1){ 22.                 break; 23.             }else if (answer != result) {                 24.                 System.out.println("Error!"); 25.                 continue; 26.             } else { 27.                 score += 10; 28.                 System.out.println("Correct!"); 29.             }             30.         } 31.         scanner.close(); 32.         System.out.println("此次测验结束,你的分数是:" + score); 33.     }     34. } 3.4 完整代码 本案例的完整代码如下所示: 1. import java.util.Scanner; 2. public class AdditionTest { 3.     public static void main(String[] args) { 4.         System.out.println("将开始 10 次加法测试... "); 5.         Scanner scanner = new Scanner(System.in); 6.         //用于记载分数 7.         int score = 0; 8.         //构建 10 次循环 9.         for (int i=1;i<=10;i++) { 10.             //随机生成两个加数 11.             int a = (int) (Math.random() * 100); 12.             int b = (int) (Math.random() * 100); 13.             int result = a + b; 14.              15.             //输出需要计算的加法表达式 16.             System.out.println("(" + i + "). " + a + " + " + b + " = ?"); 17.             System.out.print("请输入答案(输入-1退出): "); 18.             //读入结果 19.             int answer = scanner.nextInt(); 20.             //判断对错 21.             if(answer == -1){ 22.                 break; 23.             }else if (answer != result) {                 24.                 System.out.println("Error!"); 25.                 continue; 26.             } else { 27.                 score += 10; 28.                 System.out.println("Correct!"); 29.             }             30.         } 31.         scanner.close(); 32.         System.out.println("此次测验结束,你的分数是:" + score); 33.     }     34. } 隐藏

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档