以下是我的代码摘录: public class AllIntegerIDs { public AllIntegerIDs() { m_MessageID = 0; m_MessageType = 0; m_ClassID = 0; m_CategoryID = 0; m_MessageText = null; } ~AllIntegerIDs() { } public void SetIntegerValues (int messageID, int messagetype, int classID, int categoryID) { this.m_MessageID = messageID; this.m_MessageType = messagetype; this.m_ClassID = classID; this.m_CategoryID = categoryID; } public string m_MessageText; […]
在我下面的示例代码中,是否真的需要counter = 0,还是有一个更好,更Python的方法来访问循环计数器? 我看到一些与循环计数器有关的PEP,但是它们被推迟或拒绝( PEP 212和PEP 281 )。 这是我的问题的一个简单的例子。 在我的真实应用中,这是用graphics完成的,整个菜单必须重新绘制每一帧。 但是这以简单的文本方式certificate它很容易重现。 也许我还应该补充一点,我正在使用Python 2.5,尽pipe如果有特定于2.6或更高版本的方法,我仍然感兴趣。 # Draw all the options, but highlight the selected index def draw_menu(options, selected_index): counter = 0 for option in options: if counter == selected_index: print " [*] %s" % option else: print " [ ] %s" % option counter += 1 options […]
java中是否有一个标记跳过了for循环的其余部分? 就像VB的继续在Java中。
所以Scala应该和Java一样快。 我正在重新讨论我最初在Java中处理的Scala中的一些Project Euler问题。 具体问题5:“从1到20的所有数字均匀分布的最小正数是多less?” 这是我的Java解决scheme,需要0.7秒才能在我的机器上完成: public class P005_evenly_divisible implements Runnable{ final int t = 20; public void run() { int i = 10; while(!isEvenlyDivisible(i, t)){ i += 2; } System.out.println(i); } boolean isEvenlyDivisible(int a, int b){ for (int i = 2; i <= b; i++) { if (a % i != 0) return false; } […]
在Java的for循环中防止null的最好方法是什么? 这看起来很丑陋: if (someList != null) { for (Object object : someList) { // do whatever } } 要么 if (someList == null) { return; // Or throw ex } for (Object object : someList) { // do whatever } 可能没有其他办法。 他们是否应该把它放在构造本身,如果它是空的,那么不要运行循环?
可能重复: 什么是在块中迭代列表的最“pythonic”方式? 我想循环一个Python列表,并一次处理两个列表项。 在另一种语言中是这样的: for(int i = 0; i < list.length(); i+=2) { // do something with list[i] and list[i + 1] } 什么是完成这个最好的方法?
在迭代列表的Python for循环中,我们可以这样写: for item in list: print item 它整齐地贯穿列表中的所有元素。 有没有办法知道在循环内有多less次我一直循环到目前为止? 例如,我想列出一个列表,在处理了十个元素之后,我想和他们做一些事情。 我想到的替代scheme会是这样的: count=0 for item in list: print item count +=1 if count % 10 == 0: print 'did ten' 要么: for count in range(0,len(list)): print list[count] if count % 10 == 0: print 'did ten' 有没有更好的方法(就像for item in list )到目前为止的迭代次数?
许多Python程序员可能不知道while循环和for循环的语法包含一个可选的else:语句: for val in iterable: do_something(val) else: clean_up() else子句的主体对于某些types的清理操作是一个好的地方,并且在循环的正常结束时执行:即,用return或break退出循环跳过else子句; continue执行后退出。 我知道这只是因为我只是查了一遍(再一次),因为我永远不会记得什么时候执行else子句。 总是? 在循环的“失败”,顾名思义? 定期终止? 即使循环退出return ? 如果不查看,我永远不能完全确定。 我责怪我对关键词的select持续的不确定性:我发现这个语义的else难以置信的无法理解。 我的问题不是“为什么这个关键字用于这个目的”(我可能会投票结束,虽然只有在阅读答案和意见后),但我怎么能考虑else关键字,使其语义是有道理的,我可以记得吗? 我确信这里有相当多的讨论,我可以想象,这个select是为了与try语句的else:语句保持一致(我也必须查看),并且目标是不添加到Python的保留字列表。 也许selectelse的理由会澄清它的function,使它更加令人难忘,但是我把名字连接到function之后,而不是经过历史的解释。 这个问题的答案,我的问题被简短地重复了一遍,包含了很多有趣的背景故事。 我的问题有一个不同的焦点(如何连接else关键字select的具体语义),但我觉得应该有一个链接到这个问题的地方。
我几乎从来没有看到像这样的循环: for (int i = 0; 5 != i; ++i) {} 当在for循环中增加1时,有没有技术上的理由使用>或<而不是!= ? 或者这更多的是一个约定?
是否有可能使用break函数来退出几个嵌套for循环? 如果是这样,你会怎么做呢? 你还可以控制中断退出多less循环?