【问题标题】:How to avoid unexpected identifier in while loop inside for loop如何在for循环内的while循环中避免意外标识符
【发布时间】:2020-02-09 07:11:12
【问题描述】:

我在 while 循环中收到了一个意外的标识符。如果我删除了while循环,我不会收到意外的标识符,但是在javascript中我不知道如何使这段代码工作,所以我可以循环直到j小于y div 2,同时在while循环中增加y

function Xploder(num,bits=1) {
  temp = BigInt(num) + BigInt(1)
  xnum = (temp * BigInt(Math.pow(2, bits)))-1n
  return xnum
}

var y = 3n
var j = 1009n
for (x=0; x<1; x++) {
  while ( (j < y//2) ) 
     y=Xploder(y)
}

Thrown:
     y=Xploder(y)
     ^

SyntaxError: Unexpected identifier
> }

如何格式化我的代码,以免在 while 循环或 javascript 中得到意外的标识符,如何正确编写上述代码。

由下面的评论者回答。我正在从 python 切换到 javascript,只是没有注意到我通过不更改为 javascript 使用的正常分区来注释掉。感谢您的回答,我能够解决此转换问题。再次感谢!

【问题讨论】:

  • 你不是在做y/2,你是在做y//2,这意味着你正在注释掉该行的后半部分,破坏了你的语法。这只是一个错字。
  • y//2 那应该是什么?因为// 表示注释的开始,所以您注释掉了该行的其余部分。
  • 我建议仔细查看突出显示您生成的代码的语法...

标签: javascript for-loop while-loop


【解决方案1】:

你是在评论 y 而不是分割它。

function Xploder(num,bits=1) {
  temp = BigInt(num) + BigInt(1)
  xnum = (temp * BigInt(Math.pow(2, bits)))-1n
  return xnum
}

var y = 3n
var j = 1009n
for (x=0; x<1; x++) {
  while ( (j < y/2) ) 
     y=Xploder(y)
}

【讨论】:

  • 谢谢 Yardenl,我正在从 python 切换到 javascript,当你回答说是的,我不能做同样的操作时,它击中了我,所以单斜杠版本对我有用。再次感谢,
【解决方案2】:

双斜杠是您标记评论开始的方式,因此:

for (x=0; x<1; x++) {
  while ( (j < y//2) ) 
     y=Xploder(y)
}

被解析为:

for (x=0; x<1; x++) {
  while ( (j < y y=Xploder(y)
}

...它解释了错误消息。

如果要分割,使用单个/

for (x=0; x<1; x++) {
  while (j < y/2) 
     y=Xploder(y)
}

【讨论】:

  • 谢谢 Will,我正在从 python 切换到 javascript,当你回答是,我不能做同样的操作,所以单斜杠版本对我有用。再次感谢,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 2019-11-10
  • 2018-11-05
  • 1970-01-01
  • 2016-01-23
  • 2017-02-25
相关资源
最近更新 更多