回到我的C/C++时代,将"无限循环"编码为
while (true)
Run Code Online (Sandbox Code Playgroud)
感觉更自然,对我来说似乎更明显,而不是
for (;;)
Run Code Online (Sandbox Code Playgroud)
在1980年代后期与PC-lint的相遇以及随后的最佳实践讨论让我想起了这种习惯.我已经使用for控制语句对循环进行了编码.今天,很长一段时间以来,也许我第一次需要作为C#开发人员的无限循环,我面临同样的情况.其中一个是正确的而另一个不是吗?
我一直在测试单选按钮.一切似乎没问题,直到我通过JS lint运行它.我修复了除一个之外的所有错误
出乎意料的'为'
for (i = 0; i < radios.length; i += 1) {
Run Code Online (Sandbox Code Playgroud)
这是我的Javascript:
/*global body,window,document,alert*/
(function () {
"use strict";
var UIlogic;
UIlogic = {
myLoad: function () {
var elems, elemText, btn1, winter, summer, fall, spring, header, btns;
winter = "<div><input type='radio' name='cb' id='cbA' value='0'/><label for='cbA'>Winter</label></div>";
summer = "<div><input type='radio' name='cb' id='cbB' value='1'/><label for='cbB'>Summer</label></div>";
fall = "<div><input type='radio' name='cb' id='cbC' value='2'/><label for='cbC'>Fall</label></div>";
spring = "<div><input type='radio' name='cb' id='cbD' value='3'/><label for='cbD'>Spring</label></div>";
header = "Header";
btns = "<br /><button …Run Code Online (Sandbox Code Playgroud) 这是我和老师之间长期争论的问题.能有一个地方的情况for循环绝对不能被代替的使用while/ do- while循环?换句话说,是否存在一个特定的情况,其中for-loop不能代替while循环; 是while/ do- while以任何方式"不同" for?
我最近遇到了一个使用1 == 1而不是true的while语句.
例:
while (1 == 1)
{
// Do something
}
Run Code Online (Sandbox Code Playgroud)
代替:
while (true)
{
// Do something
}
Run Code Online (Sandbox Code Playgroud)
它们看起来都是正确的并产生相同的结果但是我想知道(除了为什么开发人员会使用1 == 1而不是真实的样式/习惯)从编译器的角度来看这有什么影响,是否有更大的使用比较运算符代替true的开销?
我在C++中逐行读取文本文件.我正在使用此代码:
while (inFile)
{
getline(inFile,oneLine);
}
Run Code Online (Sandbox Code Playgroud)
这是一个文本文件:
-------
This file is a test to see
how we can reverse the words
on one line.
Let's see how it works.
Here's a long one with a quote from The Autumn of the Patriarch. Let's see if I can say it all in one breath and if your program can read it all at once:
Another line at the end just to test.
-------
Run Code Online (Sandbox Code Playgroud)
问题是我只能阅读段落以"这是一个很长的等..."开头,它立即停止:"我无法解决阅读所有文本.你有什么建议吗?
我只是偶然发现了这个问题"while(true)"循环如此糟糕?
他们让我想到我通常做什么.令我惊讶的是,我意识到我几乎从未while loop在我的专业代码(或工作代码)中使用过.
前端框架(例如面部等)不计算在内.
那我什么时候应该使用'while循环'?你多久使用一次while循环?
这是一个真实的问题,请不要因为主观而关闭我真的是在一个具体的例子之后.它不能被更好的替代品取代.
请原谅我的n00bness,因为我是Javascript和循环世界的新手,但我不知道如何最好地for loops在javascript中接近.希望理解for loops将有助于揭示其他类型的循环.
示例代码
for (var i=0; i < 10; i=i+1) {
document.write("This is number " + i);
}
Run Code Online (Sandbox Code Playgroud)
我的理解是,当i初始化时,它从值0开始,然后根据条件进行评估< 10.如果它小于10,它执行该语句document.write("This is number + i);一旦它执行上述语句,才把它递增1的下一个值.
我咨询过的指南;
现在,http: //www.functionx.com/javascript/Lesson11.htm上的指南似乎另有说明了
要执行此循环,将检查"启动"条件.这通常是计数应该开始的初始值.接下来,测试条件; 此测试确定循环是否应继续.如果测试呈现真实结果,则表达式用于修改循环并执行Statement.执行Statement后,循环重新开始.
抛出我的那条线是If the test renders a true result, then the Expression is used to modify the loop and the Statement is executed.似乎推断因为0小于10,所以修改增量表达式,其将是0 + 1,然后document.write执行该语句.
我的问题
解释for循环的正确方法是什么?我自己的理解是否正确?同样的理解是否适用于其他编程语言,例如PHP,Perl,Python等?
c# ×2
for-loop ×2
java ×2
javascript ×2
while-loop ×2
c++ ×1
do-while ×1
file ×1
ifstream ×1
jslint ×1