,``java,import java.util.Random;,import java.util.Scanner;,public class GuessNumberGame {, public static void main(String[] args) {, Random random = new Random();, int randomNumber = random.nextInt(100) + 1; // 生成1到100之间的随机数, Scanner scanner = new Scanner(System.in);, int guess;, System.out.println("Welcome to the Guess the Number Game!");, System.out.println("I'm thinking of a number between 1 and 100.");, do {, System.out.print("Enter your guess: ");, guess = scanner.nextInt();, if (guess < randomNumber) {, System.out.println("Too low, try again.");, } else if (guess > randomNumber) {, System.out.println("Too high, try again.");, }, } while (guess != randomNumber);, System.out.println("Congratulations! You guessed the number: " + randomNumber);, scanner.close();, },},
``,这段代码实现了一个简单的猜数字游戏,用户需要在1到100之间猜测一个随机生成的数字,直到猜中为止。
嗨,我是程序员小白,最近在学习Java,想找一些简单又有趣的代码来练手,请问有什么推荐的吗?我想做一些小项目,既能巩固基础,又能增加乐趣。
简单猜数字游戏
Scanner
类获取用户输入,通过循环和条件语句判断用户猜测是否正确。猜单词游戏
ArrayList
存储单词,通过循环和contains
方法检查用户输入。贪吃蛇游戏
简单文本处理
FileReader
和BufferedReader
读取文件,使用String
类的相关方法处理文本。数据排序
数据统计
简单窗口程序
JFrame
创建一个简单的窗口,设置窗口标题和大小。JFrame
对象,设置窗口属性,如标题、大小,并显示窗口。图标和布局
setIconImage
方法添加图标,使用setLayout
方法设置布局管理器。窗口事件处理
简单HTTP服务器
ServerSocket
和Socket
实现一个简单的HTTP服务器,处理客户端请求。ServerSocket
监听端口,接受客户端连接,处理HTTP请求。简单客户端程序
Socket
连接到服务器,发送和接收数据。Socket
连接到服务器地址和端口,使用InputStream
和OutputStream
进行数据交换。简单文件传输
FileInputStream
和FileOutputStream
进行文件读写。简单类设计
private
关键字声明属性,使用public
关键字声明方法。继承和多态
extends
关键字实现继承,使用super
关键字调用父类方法,实现多态。extends
关键字指定继承关系,重写或调用方法。接口和抽象类
interface
关键字定义接口,使用abstract
关键字定义抽象类。其他相关扩展阅读资料参考文献:
让程序玩转逻辑游戏
循环中的“无限”陷阱
Java的循环结构看似简单,但通过巧妙设计可制造出意想不到的效果,使用while
循环实现“无限”打印,但实际通过条件判断制造终止条件:
int i = 0; while (i++ < 10) { System.out.println("循环中的乐趣:" + i); }
这段代码看似无限循环,但i++
的后置递增会让循环在i=10
时终止,输出结果却充满迷惑性。控制流的细节决定程序的走向,这种“陷阱”常用于面试题或代码挑战。
条件判断的“真假”反转
利用逻辑运算符的短路特性,可以写出反直觉的代码。
boolean a = true; boolean b = false; if (a || (b && System.out.println("真假反转"))) { System.out.println("条件满足"); }
代码中b && ...
部分永远不会执行,但通过条件判断的优先级设计,可以实现“隐藏”输出的目的,适合用于代码谜题或教学演示。
异常处理的“幽默”场景
用try-catch
块制造搞笑的错误提示:
try { int[] arr = new int[0]; System.out.println(arr[5]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("你试图访问不存在的数组元素,这就像问‘月球上有没有WiFi’一样荒谬!"); }
异常处理不仅是错误捕获工具,更是创意表达的载体,这种写法能帮助开发者理解异常机制的底层逻辑。
神奇数据结构:用基础容器玩转趣味逻辑
数组的“逆序”魔术
通过数组遍历实现“倒着”输出:
String[] names = {"Alice", "Bob", "Charlie"}; for (int i = names.length - 1; i >= 0; i--) { System.out.println(names[i]); }
数组的索引操作是数据结构的基石,这种逆序输出能直观展示索引的灵活性。
集合的“随机”惊喜
用HashSet
存储字符串后,输出顺序会随机变化:
Set<String> set = new HashSet<>(Arrays.asList("Java", "Python", "C++")); for (String lang : set) { System.out.println(lang); }
集合的无序特性常被用来制造“意外”效果,适合用于演示数据结构的随机性。
递归的“无限”迷宫
用递归实现看似无限的嵌套输出:
public static void recursivePrint(int n) { if (n == 0) return; System.out.println("递归层数:" + n); recursivePrint(n - 1); }
递归的本质是自我调用,通过控制递归深度可展示程序执行的层级关系。
创意类库应用:用内置工具实现趣味功能
正则表达式的“文字游戏”
用正则匹配回文字符串:
String text = "上海自来水来自海上"; if (text.matches(".+(?:.+.*)?")) { System.out.println("这是一个回文!"); }
正则表达式是字符串处理的瑞士军刀,这种写法能直观体现模式匹配的巧妙。
日期时间API的“年龄计算”
用LocalDate
计算用户年龄:
LocalDate birthDate = LocalDate.of(1990, 5, 15); Period period = Period.between(birthDate, LocalDate.now()); System.out.println("你已经" + period.getYears() + "岁了!");
日期时间处理是日常开发的高频需求,这种写法能展示API的简洁性。
Swing图形库的“动画”彩蛋
用Timer
实现移动的方块动画:
JFrame frame = new JFrame(); JPanel panel = new JPanel() { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.fillRect(x, 100, 50, 50); } }; Timer timer = new Timer(100, e -> x += 1); timer.start();
图形库是Java可视化能力的体现,这种写法能展示GUI开发的趣味性。
趣味算法:用简单逻辑创造复杂效果
斐波那契数列的“视觉化”
用递归生成斐波那契数列并绘制成图形:
int n = 10; int[] fib = new int[n]; fib[0] = 0; fib[1] = 1; for (int i = 2; i < n; i++) { fib[i] = fib[i-1] + fib[i-2]; } System.out.println(Arrays.toString(fib));
递归算法是编程的核心思想之一,这种写法能直观展示数列规律。
冒泡排序的“可视化”彩蛋
用数组模拟冒泡排序过程:
int[] arr = {5, 3, 8, 1}; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length - 1; j++) { if (arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; System.out.println("排序中:" + Arrays.toString(arr)); } } }
排序算法是数据处理的基础,这种写法能帮助理解算法逻辑。
二分查找的“猜数字”游戏
用二分查找实现猜数字小游戏:
int target = 7; int[] numbers = {1, 3, 5, 7, 9}; int left = 0, right = numbers.length - 1; while (left <= right) { int mid = (left + right) / 2; if (numbers[mid] == target) { System.out.println("猜中了!"); break; } else if (numbers[mid] < target) { left = mid + 1; } else { right = mid - 1; } }
二分查找是高效搜索的典范,这种写法能展示算法的实用性。
趣味语法:用Java特性实现意想不到的代码
字符串拼接的“隐藏”技巧
用String
的运算符实现动态输出:
String result = ""; for (int i = 0; i < 5; i++) { result += "Hello"; } System.out.println(result);
字符串拼接是Java语言的特性之一,这种写法能展示语法的灵活性。
Lambda表达式的“简化”魔法
用List.forEach
实现简洁的遍历:
List<String> list = Arrays.asList("Java", "Python", "C++"); list.forEach(lang -> System.out.println("学习" + lang + "吧!"));
Lambda表达式是函数式编程的利器,这种写法能体现语法的现代性。
枚举的“自定义”彩蛋
用枚举实现趣味性的状态切换:
enum State { START, RUN, STOP; } State currentState = State.START; switch (currentState) { case START: System.out.println("程序启动!"); break; case RUN: System.out.println("程序运行中!"); break; case STOP: System.out.println("程序停止!"); break; }
枚举是类型安全的常量集合,这种写法能展示语法的多样性。
Java的趣味性不仅存在于复杂框架中,更藏在基础语法和逻辑里,通过控制流、数据结构、类库应用、算法设计和语法特性的结合,即使是简单的代码也能产生令人惊喜的效果,这些小例子不仅帮助初学者理解核心概念,还能激发开发者对编程的创造力。掌握这些技巧,让代码成为表达思想的工具,而非枯燥的指令集合。
本教程地介绍了JavaScript正则表达式的基础知识,包括正则表达式的语法、元字符、量词、分组和引用等概念,通过实例演示,读者将学会如何使用正则表达式进行字符串匹配、查找、替换和分割等操作,提高JavaScript字符串处理能力,教程旨在帮助开发者掌握正则表达式的核心技巧,提升编程效率。 嗨,我...
《Java耿祥义第六版电子版》是一本的Java编程教程,书中全面介绍了Java语言的核心概念、编程基础和高级特性,包括面向对象编程、集合框架、异常处理、多线程编程等,通过丰富的实例和练习,帮助读者快速掌握Java编程技能,适合初学者和有一定基础的读者学习使用。 “我最近在找一本Java编程的教材,...
查看Java API文档,首先打开Java官方文档网站(https://docs.oracle.com/en/java/javase/),在搜索框中输入所需查看的API名称,找到相关API后,点击进入详细文档页面,阅读文档时,可以从以下方面了解:,1. API的介绍:了解API的功能、用途和适用场景...
"插入到数据库的INSERT INTO语句可以配合条件语句使用,实现基于特定条件的记录插入,使用WHERE子句在INSERT INTO语句中指定插入记录的条件,只有满足条件的记录才会被插入到目标表中,这种用法在数据验证和记录过滤中非常有用,确保了数据的一致性和准确性。"解析“INSERT INTO...
个人主页ASP源码是指使用Active Server Pages(ASP)技术编写的网页源代码,用于构建动态交互式的个人网站,这些源码通常包含HTML、VBScript或JScript等脚本语言,以及用于数据库交互的ASP内置组件,通过这些源码,用户可以自定义网页设计、实现用户登录、内容管理、留言板...
HTML,即超文本标记语言(HyperText Markup Language),是一种用于创建网页的标准标记语言,它通过一系列标签(如`、、`等)来描述网页的结构和内容,使浏览器能够展示出图文并茂的页面,HTML是构建网页的基础,它定义了网页的结构和格式,而CSS和JavaScript则用于美化页...