我已经编程了一段时间(2年的工作+ 4.5年的学位+ 1年的大学预科课程),而且我从未使用过do-while循环而不是被迫参加编程入门课程.如果我从未遇到过如此根本的事情,我会越来越感觉我编程错了.
可能是因为我没有遇到正确的情况吗?
有哪些例子需要使用do-while而不是一段时间?
(我的学校教育几乎都是用C/C++编写的,我的工作是在C#中,所以如果有另一种语言绝对有意义,因为do-whiles的工作方式不同,那么这些问题并不适用.)
澄清......我知道a while和a 之间的区别do-while.在检查退出条件然后执行任务时.do-while执行任务然后检查退出条件.
我有一个代码,可以做这样的事情:
while (doorIsLocked()) {
knockOnDoor();
}
openDoor();
Run Code Online (Sandbox Code Playgroud)
但我想礼貌,在打开它之前总是敲门.我可以这样写:
knockOnDoor();
while (doorIsLocked()) {
knockOnDoor();
}
openDoor();
Run Code Online (Sandbox Code Playgroud)
但我只是想知道是否有更好的成语不重复陈述.
可能重复:
什么时候适当?
有人会介意告诉我这两个陈述之间的区别是什么,何时应该使用另一个陈述?
var counterOne = -1;
do {
counterOne++;
document.write(counterOne);
} while(counterOne < 10);
Run Code Online (Sandbox Code Playgroud)
和
var counterTwo = -1;
while(counterTwo < 10) {
counterTwo++;
document.write(counterTwo);
}
Run Code Online (Sandbox Code Playgroud)
http://fiddle.jshell.net/Shaz/g6JS4/
在这个时刻,我没有看到do声明的重点,如果它可以在声明中没有指定它的情况下完成while.
我想要一个使用UInt16(ushort)循环遍历其所有值的循环.但是,这不会这样做:
for( ushort i = 0; i < UInt16.MaxValue; i++ )
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
问题是,当i == 0xFFFF而不是"做某事"时,循环将退出.如果我将'for'语句更改为"for(ushort i = 0; i <= UInt16.MaxValue; i ++)",那么它将变为无限循环,因为我永远不会达到0x10000因为ushorts只转到0xFFFF.
我可以使'i'成为一个int并将其转换为或者将其分配给循环中的ushort变量.
有什么建议?
是
if(a)
{
do
{
b();
}
while(a);
}
Run Code Online (Sandbox Code Playgroud)
完全一样
while(a)
{
b();
}
Run Code Online (Sandbox Code Playgroud)
?
我正在寻找使用 Do While 的优势,大多数博客和教程都说它取决于需求,否则我们从 Do While 中获得任何优势吗?
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
Run Code Online (Sandbox Code Playgroud) c++ ×3
do-while ×3
c ×2
c# ×2
javascript ×2
loops ×2
while-loop ×2
coding-style ×1
for-loop ×1
php ×1