温馨提示:本文翻译自stackoverflow.com,查看原文请点击:knime - Java Loop with condition inside
java knime

knime - 带有条件的Java循环

发布于 2020-03-27 10:38:36

我没有Java经验,但是我需要在KNIME中创建Java代码段节点。

我正在尝试编写一个短循环,根据特定条件创建一个计数器/迭代器。我设法编写了IF THEN ELSE部分,但我想知道如何将其放入循环中:

out_user_session_counter = 1;

if (c_session_end.equals("session end")) {
    out_user_session_counter = out_user_session_counter + 1; 
} else {
    out_user_session_counter = out_user_session_counter + 0;
}

我们的想法是:每一次c_session_end.equals("session end")out_user_session_counter应该由1来增强

UPD .:这是带有循环结果(不正确的结果)的数据模型的屏幕截图:

屏幕截图示例

正确的预期结果将是1 1 1 1 2 2 3 3 3 3 3而不是1 1 1 1 11 1 1 1 1 1 1 1

查看更多

查看更多

提问者
Milena
被浏览
320
SteveR 2019-07-04 17:30

您需要循环计数器才能在Java代码段的行之间保留。为此,请//Your custom variables:在代码段一部分中对其进行定义

int sessionCounter=0;

然后在//Enter you code here:部分中:

if("session end".equalsIgnoreCase(c_column2)){
    sessionCounter++;
}

out_user_session_counter = sessionCounter;

如图所示,具有“会话结束”的行将包含递增的计数器。如果希望它包含旧计数器,请更改代码段,以使上面的最后一行在if语句之前

您无需将其放入KNIME中的循环中-片段的表达式部分已经为每个输入行顺序计算了。为了清楚起见,下面在代码段对话框中显示

在此处输入图片说明