for (statement1; statement2; statement3)
{
/* body */
}
(1)首先执行。statement1
(2) 执行下一步。statement2
(3)如果评估为真,则执行主体statement2
(4)然后执行。statement3
(5) 从步骤(2)重复上述步骤
| +<-----------------+
| | ^
V V |
for ( (s1); -------->(s2 true? | false?); (s3) )
{ | | ^
| | |
| | |
V | |
(body)-----|--------->+
} |
|
V
(come out)
您显示的结构与上面相同的正常结构。可以是任何语句。在您的示例中,您用逗号运算符分隔了 和 。可以用逗号运算符分隔任意数量的语句。statement n
statement1
statement3
通常,循环与 with 初始化一起使用,因为它只执行一次。用于循环终止条件检查,因为此语句的计算值用于决定是否进入突破的主体。和 用于更新循环终止变量,因为它在主体之后执行。但一般来说,它们可以以任何方式使用。for
statement1
statement2
statement3
首先是初始化变量。接下来是 如果这是真的,那么正文就被执行了。在执行正文之后,即执行。该循环将迭代时间到 。但是将打印时间,就像在某一点上一样,并且将变得相同,并且将评估为假。statement1
i=10, j=0;
statement2
j <= 10
statement3
i--,j++
11
0
10
5
i
j
if (i > j)
编辑下面是一个示例,其中可能使用它,不是很实用,但作为示例使用,以检查回文字符串。
int i, j, n, flag;
char str[128];
printf ("\nEnter string: ");
scanf ("%s", &str);
n = strlen (str);
for (flag=1, i=n-1, j=0; j<n/2; j++, i--)
{
if (str[i] != str[j])
{
flag = 0;
break;
}
}
if (flag)
printf ("\n\"%s\" is a palindrome");
else
printf ("\n\"%s\" is not a palindrome");
我们应该始终尝试编写易于阅读且不会造成混淆的代码。这有助于代码编写者以及阅读代码的其他人。