当前位置: 首页 > 面试题库 >

在Java中的for循环外打印i的值

邵崇凛
2023-03-14
问题内容

我试图打印/获取循环变量i的值,并在for循环之外的另一种方法中使用它。我怎么做?

public void mousePressed() {  
    for (int i = 0; i < 1000; i++){
      boxes[i].openIt();
    }
}

问题答案:

for语句中声明的变量仅在for组件和以下代码块的范围内,尤其是请参阅JLS
14.14.1.1节

for ( ForInit ; Expression ; ForUpdate ) Statement

如果ForInit代码是局部变量声明,则将其执行为好像是出现在块中的局部变量声明语句(第14.4节)一样。

如果您想在之外使用for它,则必须在要访问它的位置中处于活动状态的作用域中声明它;例如,就在for循环之外:

int i;
for (i = 0; i < 1000; ++ i)
    ;
// i is accessible in this scope
System.out.println(i);

或者,如果更合适,则可以声明一个单独的变量并将感兴趣的值存储在其中:

int k = ...;
for (int i = 0; i < 1000; ++ i)
    if (condition) // for example
        k = i;
// k is accessible in this scope, i is not
System.out.println(k);

有关简短摘要,请参见本页,尤其是最后的 Loop
Scope
示例,该示例的示例与您的问题完全相同。



 类似资料:
  • 问题内容: 在Java中,我通常会进行如下所示的for循环: 但是最近一位同事打了这样的字: 他说后者会更快。真的吗? 问题答案: 不,那不是真的。您可以通过定时每个循环进行大量迭代来衡量性能,但是我可以肯定它们会是相同的。 神话来自C,它被认为比C 更快,因为前者可以通过增加i然后返回来实现。后者可以通过将i的值复制到临时变量,递增i,然后返回临时变量的方式来实现。第一个版本不需要制作临时副本,

  • 需要一些专家的建议。首先,这里是我的代码: 我的问题是:当我输入一个用户号码如“3”时,提示我的代码只打印一个__当我希望它打印指定的号码。我无论如何也想不出来。 我是英语专业的,所以这不是我的强项:(形状应该是菱形的。)

  • } 链接:https://www.hackerrank.com/challenges/java-string-compare/problem

  • 大家好,我被一个问题困住了,想不出解决办法。我使用的是while循环,do while循环和for。我知道我的前两个while循环是正确的,我试图完成的是让我的do while循环和for语句打印出与我的第二个while循环相同的东西。 输入要打印的消息? 你好 输入要打印邮件的次数。输入1-20之间的值: 5 使用do-while循环输出... 第6.0行-你好 do-while循环中的时间..

  • iv得到了一个检查两个数组中的值的循环。如果找到匹配的值,这些值将被打印到控制台。 我还包含了一个 print 语句,该语句旨在仅在未在任何地方找到匹配项时才打印。 此时,如果传入的数组包含一些匹配的数字和一些不匹配的数字,我仍然会得到没有找到匹配的消息。相反,我希望只有在任何地方都不存在匹配时,才打印“找不到匹配”消息。 我认为这应该是一个简单的更正,但我看不出我哪里出错了。 建议不胜感激。

  • 我正在编写一个计算e^x值的方法。我在python中实现它的方式如下。 这将很好地返回e^x的值。但是,当我尝试在c#中实现相同的方法时,它没有输出与python中相同的值。以下是c#中的实现。 起初,这段代码的输出是一个无穷大符号。为了解决这个问题,我只是减少了循环运行的次数。在c#中,循环只运行10次,代码的输出非常接近于python中循环运行100次的输出。我的问题是,在不同的编程语言中,两