一个关于c代码语法的问题(语言-c

这个为什么选择第三个选项?其他三个为什么错误我也不太明白,希望能的到解答谢谢了

img

为什么不选择D呢?C和D都是正确的啊
A. while(); 是错误的,因为 while 语句需要一个布尔表达式作为条件。

B. for(); 是错误的,因为 for 语句需要三个参数:初始化语句,条件表达式,和一个迭代语句。

while和for的括号内不能是空的,必须有条件,所以A和B不对
do while连着写是不行的,所以D也不对