繁体   English   中英

退出我的for循环后如何停止null打印?

[英]How to stop null being printed after exiting my for loop?

因此,我正在尝试开发一个基于文本的简单Java游戏,其中一小部分是玩家资源,而我却是个赢家(我对Java非常陌生),我似乎无法弄清楚如何获得null以停止在屏幕上打印,将此放到上下文中,我还有其他方法可以杀死敌人等,如果杀死了敌人,则运行dropChance()方法,如果敌人掉落了任何东西,则玩家库存更新敌人投下的新物品,在代码的另一部分,当玩家遇到敌人时,玩家有5个选项,攻击,防御等,其中一个选项是显示其库存,此时下面的方法是调用并可以很好地打印出球员清单的所有元素,问题如前所述,一旦for循环完成并退出,我们将移至return null,这也将在控制台窗口中打印出来显然不理想,在此问题上的任何帮助将是极大的 感激的,如果需要我的更多代码来获得更完整的理解,那么我将很乐意提交。

感谢您提供的任何帮助。

D.

    public static List<String> getPlayerInventory()
    {
        for (int i = 0; i < playerInventory.size(); i ++)
        {
            System.out.println(playerInventory.get(i));
        }

        return null;
    }

//战斗循环。 while(!killedAnEnemy){int randomEnemyAttack = random.nextInt(dungeon.getMaxEnemyAttack()); int randomPlayerAttack = random.nextInt(dungeon.getMaxPlayerAttack());

                System.out.println("\n> What would you like to do: ");
                System.out.println("\n\t * Press 1 to attack.");
                System.out.println("\n\t * Press 2 to defend.");
                System.out.println("\n\t * Press 3 to run away.");
                System.out.println("\n\t * Press 4 to use a health potion.");
                System.out.println("\n\t * Press 5 to display inventory");

                int input = scanner.nextInt();

                switch (input)
                {
                    case 1:
                        System.out.println("\n You attack the " + userEnemyChoice + " and strike it for " + randomPlayerAttack + " damage points!");
                        System.out.println("\n The " + userEnemyChoice + " hits you back for " + randomEnemyAttack);
                        break;
                    case 2:
                        System.out.println("\n You decide that defense is the best option, the " + userEnemyChoice + " attacks you first causing " + randomEnemyAttack + " hit points of damage!");
                        System.out.println("\n You then attack in retaliation and strike the " + userEnemyChoice + " for " + randomPlayerAttack + " hit points of damage");
                        break;
                    case 3:
                        System.out.println("\n You realise you are no match for this enemy and so choose to run, the " + userEnemyChoice + " strikes you one final blow" + "\n for " + randomEnemyAttack + " hit points as you turn your back and are left defenseless!");
                        break;
                    case 4:
                        break;
                    case 5:
                        System.out.println("\n Your inventory is as follows: ");
                        System.out.println("\n\t " + getPlayerInventory());
                        break;
                }

在第5种情况下不要执行sysout,只需调用这样的方法

                case 5:
                    System.out.println("\n Your inventory is as follows: \n");
                    getPlayerInventory();
                    break;

在您的开关盒中,更换

System.out.println("\n\t " + getPlayerInventory());

getPlayerInventory();

这将以您想要的方式工作。 之所以将其打印为“ null”,是因为您是在一个print方法中进行调用的。 不需要它,因为getPlayerInventory()中的print方法将自己运行。

如果您总是返回null则仅使该方法void有意义的。 如果正在打印null则听起来像是在print方法中调用此方法。 您不需要这样做,因为清单已经在方法内部打印了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM