【发布时间】:2011-09-06 21:40:36
【问题描述】:
所以今天我去面试了,其中一个问题是以下(C#上下文)。
//Print the output for the following code:
for (int i = 10, j = 0; j <= 10; j++, i--)
{
if (i > j)
Console.WriteLine(j.ToString());
}
我以前从未见过这样的结构,我问过我的同事,我工作场所的 5 人中有 4 人也不知道(也许更多的是对我们的反思,但我离题了)。使用一些基本逻辑,我能够正确回答问题,但这些知识从根本上改变了我对如何构建 for 循环的理解。
所以我想我的问题可以归结为这个。
- 是否所有基于 C 语法的语言都实现了此功能? IE:C、C++、Java、javascript等
- 这个语法从何而来?
- 是否还有其他“不为人知”的结构可供 for 循环使用?
- 考虑到阅读的难度,编写上述代码是否被认为是不好的做法?
- 在现实世界中是否存在需要这种结构的良好示例?
【问题讨论】:
-
我今年 15 岁,有时我会在自己的项目中使用它:D 对我来说,您的同事也不知道这听起来很奇怪。
-
@Coline:是否应该使用它还有一个问题......
-
你能做到
j.ToString()吗?我认为由于j是一个原始方法,因此您无法访问不存在的方法。我想 C# 是不同的。