当前位置: 首页 > 知识库问答 >
问题:

使用for循环设置变量是一种好的做法吗?

班浩皛
2023-03-14

例如,如果我想将x设置为数组中不等于0的第一个元素,我可以编写:

int x = 0;
for(; x<arr.length && arr[x] != 0; x++) {} 
//use x

这是不好的做法吗?

此外,希望这是一个足够基本的场景,不要太固执己见。

共有1个答案

寿丰
2023-03-14

TL: DR-这并不完全是“好的或坏的做法”,但这不是一种正常的方式。

这可能需要一些搜索,但每种语言可能都有一种方法可以完全按照您的要求进行,而不会出现主观上奇怪的循环。

你的方法是一种非标准的方法,但确实有效。然而,它可能会引起一些混乱,并且可能无法通过代码审查。

我开始在JavaScript中考虑这个问题,但我必须做一些研究才能找到不同的方法。我确实找到了一个。不过,找不到值的默认值是-1。我修改了示例代码以产生您正在寻找的结果。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex

或者使用查找获取元素而不是索引。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

js prettyprint-override">const array1 = [0, 0, 0, 0, 0, 0, 130, 44];

const isLargeNumber = (element) => element != 0;

let index = array1.findIndex(isLargeNumber);

console.log(index);          // 6
console.log(array1[index]);  // 130
 类似资料:
  • 我有一个枚举: 在枚举成员之间使用方法检查“层次结构”有什么问题吗?我的意思是-当有人将来可能会意外更改顺序时,使用它排除冗长是否有任何缺点。 还是这样做更好:

  • 我需要构造一组变量,其中变量应基于2部分构造:a)name b)一个用value[1]加强的数字。对于不断增加的数字,我使用了for循环。我设法创建了一个字符串,参见test1,但没有增加变量名称,参见test2。 鉴于下面提供的错误代码,我假设R不希望我使用变量名中的“paste0”来构造某些东西。 我的R代码: “测试1”的结果: 我得到的test2错误是: “test2”的预期结果是:

  • 我见过很多次scala代码使用Option(对于简单值)或[List[Error],T]来处理错误。 这为这样的代码提供了位置 这会产生一个不太好的代码嵌套,迫使您处理每一步的失败,并迫使您让所有函数返回一个[...] 所以我想知道 > 在scala(或一般的函数式编程)中不鼓励使用异常 使用它们有任何缺点(关于不可变性或代码并发性) 异常与原理或函数式编程有些冲突 你可以想出一个更好的方法来编写

  • 问题内容: 我想知道使用语句退出循环而不是满足循环条件是否是“坏习惯” ? 我对Java和JVM的了解不足,无法知道如何处理循环,因此我想知道我是否通过这样做忽略了一些关键的事情。 这个问题的重点:是否有特定的性能开销? 问题答案: 好主啊 有时,可能会在满足整体要求的循环中发生某些事情,而不满足逻辑循环条件。在这种情况下,用于阻止您毫无意义地循环。 例 在此示例中更有意义的是。每次找到后都继续循

  • 我有一个IntentService,它使用TimerTask每隔45秒在OnHandleContent中调用webservice。 我的问题是:我正在调用应用程序启动IntentService,而在OnHandleIntent中,由于TimerTask,任务不断重复。。这样做是一种好做法还是有任何缺点?我应该在我的活动中使用报警管理器每次调用intent service,还是继续使用timer任务

  • 在循环中,我是否可以对循环使用相同的计数器变量? 或者这些变量会相互影响吗?以下代码应该为第二个循环使用不同的变量,例如,还是可以?