2009-11-28 161 views
-1

我公司通过字符串列表循环,在psudocode我这是怎么每个循环的帮助

for (each node in my list) 
    if the node.getBooleanVariable == true 
     add one to my counter 
    else 
     take one away from my counter 
    if my counter = another counter 
     print node.getStringVariable() //THIS IS WHERE I AM STUCK 

想在这里与节点卫生组织未来的布尔元素来连接从node.getStringVariable()的字符串是假一个。这是否使它更清晰?

感谢

+2

改说这个问题,现在还不清楚。 – Bozho 2009-11-28 15:13:09

+4

也许一些真实的代码会更好。 – Milhous 2009-11-28 15:14:19

+0

你可以发布一些示例输入和预期输出吗?我认为这会让你更容易理解你在做什么。此外,由于您想在Java中得到答案,只需发布​​带有注释的Java代码,而不是使用伪代码就可以使问题更清楚。 – 2009-11-28 15:15:42

回答

0

如果你的逻辑需要“期待”在您的列表在遍历它来寻找下一个假节点,然后换每个可能并不合适。这是因为for-each只允许您在任何给定时间查看列表的当前元素。如果你可以分享一些关于循环需求的背景信息,那么有人可能会建议一些无需向前看的伪代码。

如果事实证明您必须向前看,您可能必须使用循环标准来获得更多控制权。

for (int i = 0; i < myList.size(); i++) { 
    Node node = myList.get(i); 
    // oh, I have to look forward? use another for loop 
    for (int j = i + 1; j < myList.size(); j++) { 
     Node forwardNode = myList.get(j); 
     // do stuff with forwardNode 
    } 
} 
+0

这是我如何开始的,但是我使用的列表没有尺寸方法,所以没有办法确定它的长度,否则这是我会采取的方法;) – timmy 2009-11-28 15:29:52

+0

因此,您使用的是自定义列表,而不是内置的Java列表之一,还是数组?那是部分任务吗? – 2009-11-28 16:04:08

1

如果你的节点列表不是太长,会更清晰(在我看来)分离出你需要连接到另一个列表,然后在最后将它们连接起来的字符串。例如:

for (each node in my list) 
    if the node.getBooleanVariable == true 
     add one to my counter 
    else 
     take one away from my counter 
    if my counter = another counter 
     concatList.add(node.getStringVariable()) 

for (each str in concatList) 
    finalString += str 

这不会是最绝对有效的方法,但它不会坏。如果您的列表只有几千个元素,您将不会注意到创建单独列表的开销。而且我认为这样理解会容易一点,但这只是个人意见。