与“while”循环相比,我了解“do while”循环的结构。我不明白的是,为什么语言需要这种语法:
do{ statements(); } while(condition);
语言在这个表达式的末尾有一个分号是绝对必要的吗?或者这更多是为了便于编写编译器?
与“while”循环相比,我了解“do while”循环的结构。我不明白的是,为什么语言需要这种语法:
do{ statements(); } while(condition);
语言在这个表达式的末尾有一个分号是绝对必要的吗?或者这更多是为了便于编写编译器?
由于}
不是结尾,因此有一些方法可以知道到达语句的结尾,因此是分号。
没有它也可以编写一种语言,但在这些语言中要求它更有意义。
至少在java中,你不能写:
} while (i < 10) && (j != 8);
没有收到此类错误消息:
NodeSorter.java:24: ';' expected
} while (i < 10) && (j != 8);
^
NodeSorter.java:24: not a statement
} while (i < 10) && (j != 8);
^
NodeSorter.java:24: ';' expected
} while (i < 10) && (j != 8);
^
3 errors
所以我想这是出于对称的原因——也许以这种方式编写解析器更容易。