我想有一个while循环做类似下面的事情,但这可能在c ++?如果是这样,语法如何?
do {
//some code
while( expression to be evaluated );
// some more code
}
我希望一旦while语句决定表达式不再为真,就会退出循环(即如果表达式为false,则表示不执行某些代码)
我是Perl的新手,我正在更新一个旧的Perl网站.每个.pl文件似乎都在顶部有这一行:
do "func.inc";
Run Code Online (Sandbox Code Playgroud)
所以我想我可以使用这个文件来标记子程序以供全局使用.
#!/usr/bin/perl
sub foobar
{
return "Hello world";
}
Run Code Online (Sandbox Code Playgroud)
#!/usr/bin/perl
do "func.inc";
print "Content-type: text/html\n\n";
print foobar();
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
Undefined subroutine &main::foobar called at /path/to/index.pl line 4.
Run Code Online (Sandbox Code Playgroud)
这两个文件都在同一个目录中,并且func.inc已经有整个网站使用的sub的音调.但是,该脚本适用于Linux生产环境,但不适用于我的Windows 7开发环境(我正在使用ActivePerl).
看起来文件没有被包含在内; 如果使用绝对路径包含文件,则子工作正常...
do "C:/path/to/func.inc";
Run Code Online (Sandbox Code Playgroud)
...所以看起来相对路径不适用于我的本地开发环境,但它们可以在生产环境中工作.但这对我没有好处,因为我的开发机器上的绝对路径不适用于实时服务器.
如何do在Windows 7开发机器上使用相对路径开始工作?
我正在使用Perl -T开关.不幸的是,这删除了"." 来自@INC,因此阻止我们使用相对路径do.我删除了此开关,旧代码现在正在运行.我知道这不是好习惯,但不幸的是我正在处理旧代码,所以我似乎别无选择.
我正在阅读的书中的一个练习的示例显示以下代码:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int input, reverse, numberOfDigits;
reverse = 0;
numberOfDigits = 0;
NSLog (@"Please input a multi-digit number:");
scanf ("%i", &input);
if ( input < 0 ) {
input = -input;
NSLog (@"Minus");
}
do {
reverse = reverse * 10 + input % 10;
numberOfDigits++;
} while (input /= 10);
do {
switch ( reverse % 10 ) {
case 0:
NSLog …Run Code Online (Sandbox Code Playgroud) 在while while循环中,计算年平均值和年平均低温平均温度和年平均温度的计算不正常.
while (inFile.hasNext()) {
//extract Month name from file
month = inFile.next();
//Remove comma for better presentation
String formatMonth = month.replace(',', ' ');
//calculate high temperature from text file
highTemp = inFile.nextDouble();
//extract low temperature file from text file
lowTemp = inFile.nextDouble();
//Calculate averaget Temperature from values
averageTemp = (highTemp + lowTemp)/2;
//Calculate Range
range = (highTemp - lowTemp);
//Calculate low temperature
minTemp = Math.min(minTemp, lowTemp);
//Calculate high temperature
maxTemp = Math.max(maxTemp, highTemp);
//Sum up high temperatures
highSum =+ …Run Code Online (Sandbox Code Playgroud) 阿罗哈.这是我潜伏之后的第一个问题.我为这个问题的详细但直接的形式道歉 - 以及对可接受的答案的限制 - 但我在这里做出贡献.我有一个问题,其他问题(例如如何避免在Node.js中的异步函数的长嵌套或Javascript中的链式回调可读性?)不满意我的回答.
我想执行几个Javascript回调,以便我有一个接一个发生的四个动作的序列.这是来源:
var self = this;
fade(div, fadeIn, -20, function() {
load(unload, dataOut, -10, function() {
load(self, dataIn, 10, function() {
fade(div, fadeOut, 20),0);
unload = self;}
);}
);}
);
Run Code Online (Sandbox Code Playgroud)
除了内部语义细节之外,load()和fade()函数非常相似,它们看起来与此类似:
function load(menuCategory, data, step, callback) {
menuCategory.parentNode.style.width = data+"px";
data += step;
if(dataIn <= data && data <= dataOut) {
setTimeout(function() { load(menuCategory,data,step,callback) }, 15);
} else if(callback && (typeof(callback) == 'function')) {
callback();}
}
Run Code Online (Sandbox Code Playgroud)
我有几个问题与这个混乱有关,但首先让我给你我不寻找的答案.使用jQuery的答案是不可接受的.使用其他计时或"同步"框架或模块的答案是不可接受的.质疑阻止执行的原因的答案是不可接受的.使用Javascript以外的语言的答案是不可接受的.非抽象答案是可以接受的,但最终的解决方案需要尽可能抽象,这意味着答案必须能够对各种相似但略有不同的行为采取行动.
这是我的主要问题:是否有一个函数/对象可以用来顺序应用这些操作,以减少这里的回调?换句话说,如果对象/函数能够同步执行每个动作,因为它是通过它单独迭代(即传递给它),对象会是什么样子?
次要问题:是否有人知道这个回调业务在其他语言中看起来像goto()多少?意思是,这种回调嵌套对我来说感觉非常尴尬和不优雅.是否有开发或已经开发的Javascript语言结构可以减少这种疯狂的业务?回调嵌套是一个最难遵循的逻辑流程.这感觉很尴尬.
我的目标是一个紧凑,优雅,有吸引力的本土Javascript对象/函数 - 我可以在for()循环或等效函数中调用 …
do-while ×3
while-loop ×2
c++ ×1
callback ×1
java ×1
javascript ×1
loops ×1
objective-c ×1
perl ×1
settimeout ×1
subroutine ×1