【问题标题】:declaring different type variables inside for condition in Java [duplicate]在Java中为条件声明不同的类型变量[重复]
【发布时间】:2016-03-16 15:06:16
【问题描述】:

我知道这很愚蠢,但我想,由于它的简单性质,很难正确研究。

for (char letter = 'a', int num = 1; maxLine - num > 0; letter++, num++) {
    System.out.print(letter);
}

这是在 C 和 C# 的 for 条件中定义变量的标准方法,但在这里似乎不起作用。为什么?

【问题讨论】:

  • 你能定义int i =0 ,char c ='a';吗?不要认为它适用于c++或c#
  • 请不要在标题中添加像“”这样的元标签。正确的方法是接受答案,或者 - 如果问题尚未结束 - 发布您自己的答案(如果当前答案都不够)并在冷却期后接受。
  • 这个问题被错误地关闭了。它不是重复的(或者至少重复的交叉是错误的,因为这个问题指的是 c++ 而不是 java)。

标签: java for-loop definition


【解决方案1】:

因为for 循环中的变量声明遵循local variable declaration 的声明。

类似于以下作为本地声明无效的原因,因为它包含多种类型:

char letter = 'a', int num = 1;

它在 for 循环中也无效。但是,您可以定义多个相同类型的变量:

for (int n = 0, m = 5; n*m < 400; n++) {}

至于设计师为什么这样做,问问他们你是否看到他们。

【讨论】:

    【解决方案2】:

    这在 C/C++ 中也不起作用,但不确定 C#。

    for 语句的第一部分可能有多个变量,但类型相同。这样做的原因是一般情况下是不能写的:

    int n = 0, char c = 5;
    

    如果您想这样做,您需要两个语句。同样for的第一部分只接受一个语句,所以这里不能放两个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 2018-02-20
      相关资源
      最近更新 更多