程序员老鬼

离职一年多了,工作交接也确认过没有任何问题,今天突然弹出一个失职处分,还要扣我将近4000块钱。。

刚看到个贴子,说有程序员离职一年多,交接没问题,结果今天突然收到个“失职处分”,还要扣3741块💸,联系前主管发现已被单删。

Image

我觉得这事吧,从程序员的角度真是离谱+心累。代码交接这种东西,通常都有版本记录、文档、甚至提交日志,一年后再翻旧账就像是你上线了个项目,用户用了一年才说有 bug,还直接扣钱,这流程设计是不是该重构一下?

网友有说可能是公司财务或管理乱来,也有人劝维权。我认同维权,但得先留好证据:邮件记录、代码仓库、交接清单,这些就像单元测试,事后才能跑得通。

保持冷静,证据在手,bug就能定位到对方身上。【备注:文末可领最新资料】

算法题:猜数字游戏

有时候写代码嘛,真不一定非得搞个大项目才有意思。前两天我在办公室发呆,就随手用 Java 写了个猜数字游戏,本来是想随便玩玩,结果一不小心还真遇到几个“坑”,所以今天就聊聊这个小玩意儿是怎么做的,顺便把我踩到的地方说一说。

说白了,这个游戏就两个步骤:

  1. 系统随机生成一个数字(假设 1 到 100 之间)。
  2. 用户不停输入数字去猜,直到猜对为止。 猜大了就提示“大了”,猜小了就提示“小了”。

这事听起来特别简单,但你真要写的时候,还得考虑几个小细节,比如输入不是数字咋办、猜的次数要不要统计、要不要允许重新开始之类的。

我先给你放个最基础的版本,差不多是能跑起来的那种:

import java.util.Random;
import java.util.Scanner;

publicclassGuessNumber{
publicstaticvoidmain(String[] args){
        Random random = new Random();
int target = random.nextInt(100) + 1; // 1 到 100
        Scanner scanner = new Scanner(System.in);

        System.out.println("猜猜我想的数字是多少(1-100):");

while (true) {
            System.out.print("请输入你的猜测:");
if (!scanner.hasNextInt()) {
                System.out.println("请输数字啊老铁!");
                scanner.next(); // 清掉错误输入
continue;
            }

int guess = scanner.nextInt();
if (guess > target) {
                System.out.println("大了,再试试~");
            } elseif (guess < target) {
                System.out.println("小了,再来~");
            } else {
                System.out.println("恭喜你猜对了!");
break;
            }
        }
        scanner.close();
    }
}

这个版本比较朴素,就是随机一个数然后 while 循环让你猜。 不过这里我加了个 scanner.hasNextInt() 检查,不然用户要是输个字母,比如 abc,直接 scanner.nextInt() 就会抛异常,游戏直接崩。

后来我觉得太单调,就加了几个功能:

  • 统计猜了几次
  • 猜对后问你要不要再玩一局
  • 给个范围提示,比如“你猜的有点大了,在 50 以内哦”

稍微改改代码,就像这样:

publicclassGuessNumberPlus{
publicstaticvoidmain(String[] args){
        Scanner scanner = new Scanner(System.in);
boolean playAgain = true;

while (playAgain) {
int target = new Random().nextInt(100) + 1;
int attempts = 0;
            System.out.println("新游戏开始!猜一个 1 到 100 的数字:");

while (true) {
                System.out.print("请输入你的猜测:");
if (!scanner.hasNextInt()) {
                    System.out.println("别闹,输数字!");
                    scanner.next();
continue;
                }
                attempts++;
int guess = scanner.nextInt();

if (guess > target) {
                    System.out.println("太大了,试试小一点~");
                } elseif (guess < target) {
                    System.out.println("太小了,再来~");
                } else {
                    System.out.println("猜对啦!你总共猜了 " + attempts + " 次。");
break;
                }
            }

            System.out.print("要再玩一局吗?(y/n): ");
            playAgain = scanner.next().equalsIgnoreCase("y");
        }
        System.out.println("游戏结束,下次再来玩吧!");
        scanner.close();
    }
}

现在可玩性就高了不少,猜对之后还能接着玩,手感有点像小时候在班里偷偷玩的那种小游戏。

虽然这是个很简单的程序,但其实能学到几个有用的 Java 细节:

  • Random().nextInt(n) 生成 0 到 n-1 之间的整数,要记得加 1 才是 1 到 n。
  • scanner.hasNextInt() 可以避免输入类型不对导致程序崩溃。
  • 用 while (true) 搭配 break 这种写法,处理循环逻辑会比较直观。
  • 逻辑不要写死,比如范围、是否重玩这些,可以用变量或方法来扩展。

这种小游戏写着轻松,调试的时候也挺有意思,而且你要是愿意,还可以改成 GUI 版、网络版、甚至加点 AI 让电脑来猜你想的数

-END-

我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html

最后给大家分享一份不错的副业资料,点击下方公众号,回复关键字: 副业 领取,也可以链接我领取,微信:hls404