gpt4 book ai didi

java - 检测 if 和 else 语句执行了多长时间

转载 作者:行者123 更新时间:2023-12-01 22:11:28 25 4
gpt4 key购买 nike

在处理中(基于java),只要程序运行,draw方法就会不断被执行。我正在尝试测量 if 语句中的条件为 true 的时间。我有一个 if 语句:

if (matrix [3][5]== 3) {
System.out.println("Closed");
}
else {
System.out.println("Opened");
}

矩阵[3][5]的值动态变化(我使用Reivision,并且根据某些标记位置,该值会变化)。当我运行程序时,条件为假,所以我将:

opened
opened
...
opened

然后条件将为真,因此将打印:

closed
closed
etc

在最终返回打开之前。我想测量条件为真并打印关闭的时间,以及当它发生变化时,它保持打开状态的时间等:对于它返回打开或关闭的每次时间间隔,我想知道多长时间。

我在我的设置中启动了一个计时器:

void setup () {
startTime = System.nanoTime();
}

我可以在 if 语句中结束:

if (matrix [3][5]== 3) {
System.out.println("Closed");
long estimatedTime = System.nanoTime() - startTime;
System.out.println("Was opened for"+ estimatedTime);
}

所以我想知道它已经打开了多长时间。但是我怎样才能让它再次启动以测量它关闭、然后打开等来回的时间?我想不通这个问题

最佳答案

您可以在 else 分支中设置新的开始时间。并且您应该设置一个额外的标志来指示最后的状态。

if (matrix [3][5]== 3) {
System.out.println("Closed");
if (isOpen)
{
isOpen=false;
System.out.println("Runtime: " + (System.nanoTime() - startTime));
}
}
else {
if (!isOpen)
{
startTime=System.nanoTime();
isOpen = true;
System.out.println("Opened");
}
}

事情是这样的。结果取决于开关频率。 “System.nanoTime()”可能会为不同的调用返回相同的时间。

关于java - 检测 if 和 else 语句执行了多长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31731147/

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