[英]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.