gpt4 book ai didi

java - 为什么调试程序和运行程序的输出顺序不同?

转载 作者:行者123 更新时间:2023-11-30 07:37:52 25 4
gpt4 key购买 nike

我编写了一个程序,使用 for 循环生成一组对象,然后将输出发送到控制台。我已经设法使输出可读。然而控制台输出看起来不太好。

类“Player”的代码:

public class Player
{
static String Name;
static int HP;
static int ATK;
static int playerNum;

public Player()
{
System.out.println("Empty constructor called. ");
}

public Player(String Name, int HP, int ATK)
{
Player.Name = Name;
Player.HP = HP;
Player.ATK = ATK;

}

public StringBuilder setName()
{
StringBuilder conc = new StringBuilder();
StringBuilder result = conc.append("Player ").append(Name);
return result;
}

}

“多人游戏”类的代码

public class Multiplayers
{
public static void createPlayer()
{
int playerCount;
int players [] = new int [2];
for (playerCount = 0; playerCount<players.length; playerCount++)
{
Player p1 = new Player("なのは", 100, 100);
StringBuilder p1_n = p1.setName();
System.out.print(p1_n+" ");
System.out.println(playerCount+1);
System.err.println("ATK "+Player.ATK);
System.out.println(Player.HP);
}
}
}

main方法只调用“createPlayer()”方法。我希望控制台显示的是这样的,我可以在调试时看到它:

Player なのは 1  
ATK 100
100
Player なのは 2
ATK 100
100

运行后看到的是这样的:

Player なのは 1  
ATK 100
100
ATK 100
Player なのは 2
100

由于程序可以很好地运行,并且在调试过程中没有看到异常结果,所以我不知道为什么输出显示的顺序不同。 .

最佳答案

System.out 和 System.err 无法保证它们在控制台上出现的顺序,因为它们是不同的流。我建议仅使用 System.out 进行输出。

关于java - 为什么调试程序和运行程序的输出顺序不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35135923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com