Buzz Buzz游戏倍数打印功能Java代码实现相关问题咨询
问题背景
Buzz Buzz游戏需求如下:
需将指定内容打印在所有可被用户输入的第一个数字整除的数值旁。
现有代码存在的错误
- 未导入
Scanner类依赖,直接使用会触发编译错误 - 变量
num未定义就直接参与num+=num运算,同时运算得到的add变量全程未使用,属于无效代码 - 字符串变量
c、c1未定义,直接赋值给s2、r2会触发编译错误 - 缺少核心逻辑:没有读取用户输入的基准数字的步骤,也没有实现“判断数值是否能被基准数字整除”的校验逻辑
- 大量重复定义无意义的字符串变量(s1、s3、r1、r3等),定义后未实际使用,代码冗余度极高
- 输出逻辑完全不符合需求:无论是否满足整除条件,都会直接输出
i + s2 + r2,没有做任何匹配判断
优化后可运行的实现代码
import java.util.Scanner; public class BuzzBuzz { public static void main(String[] args){ Scanner input = new Scanner(System.in); // 读取用户输入的第一个数字:整除判断的基准除数 System.out.print("请输入判断整除的基准数字:"); int divisor = input.nextInt(); // 读取匹配成功后要打印的指定内容 System.out.print("请输入匹配后要追加打印的内容:"); String printContent = input.next(); for (int i = 1; i <= 10; i++){ // 仅能被基准数字整除时,才在数值后追加打印指定内容 if(i % divisor == 0){ System.out.println(i + printContent); }else { System.out.println(i); } } // 关闭输入流释放资源 input.close(); } }
优化说明
- 补充
Scanner类的导入声明,解决编译依赖问题 - 清除所有无效、未定义的变量,删除冗余代码,提升可读性
- 新增用户输入读取逻辑,获取整除判断的基准数字和待打印的指定内容
- 新增取模校验逻辑,只有满足整除条件时才追加打印指定内容,完全匹配需求
- 补充输入流关闭逻辑,避免资源泄漏
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

