我目前正在学习'C程序设计语言'的练习.这是我的解决方案之一:
int c;
while ((c=getchar()) != EOF) {
if (c == ' ') {
while ((c = getchar()) == ' ')
{} // do nothing?
putchar(' ');
}
putchar(c);
}
Run Code Online (Sandbox Code Playgroud)
我在这里发现了一些与我的完全不同的解决方案,并使用额外的变量来跟踪发生了什么,而我只是使用while循环来跳过所有空间.我的解决方案感觉有点混乱,因为看起来有点hackish有一个在花括号之间没有任何东西的while循环.我想知道是否有任何好的理由不这样做?谢谢你的建议:-)
作为我正在创建的HTML表单的一部分,我希望有一个下拉列表,它将列出我的数据库中的所有用户名.
我认为下面的代码可以解决问题,但是下拉列表是空的 - 有人可以协助我做错了什么吗?谢谢.
<tr>
<td>Owner</td>
<td>
<select name="owner">
<?php
$sql = mysqli_query($connection, "SELECT username FROM users");
while ($row = $sql->fetch_assoc()){
?>
<option value="owner1"><?php echo $row['username']; ?></option>
<?php
// close while loop
}
?>
</td>
</tr>
Run Code Online (Sandbox Code Playgroud) 当我在大学(80年代中期)学习CS时,不断重复的一个想法是总是写出在顶部(而不是......)而不是在底部(做...同时)测试的循环.环.这些概念通常以对研究的参考作为后盾,这些研究表明,在顶部测试的循环在统计上比其底部测试对应物更可能是正确的.
结果,我几乎总是编写在顶部测试的循环.如果它在代码中引入了额外的复杂性,我不会这样做,但这种情况似乎很少见.我注意到一些程序员几乎专门编写在底部测试的循环.当我看到像这样的结构:
if (condition)
{
do
{
...
} while (same condition);
}
Run Code Online (Sandbox Code Playgroud)
或者反过来(if在里面while),它让我想知道他们是否真的以这种方式编写它,或者if当他们意识到循环没有处理null情况时他们添加了语句.
我做了一些谷歌搜索,但没有找到任何关于这个主题的文献.你们(和女孩们)如何写你的循环?
对于我的计算语言类的理论,我们得到了一个家庭作业,用一种语言来实现一段代码,该语言只有流控制的while语句(没有if语句).这主要是为了证明你可以只使用while循环编写图灵完备语言.
对于那些能理解语言语法的人,以下是语言规则:
S -> S;S | while C do S od | id := E
E -> E + T | T | E - T
T -> T * F | F | F / T
F -> id | cons | (E)
C -> E = E | E > E | E < E | E >= E | E <= E | E != E | C and C | C or C | not(C)
Run Code Online (Sandbox Code Playgroud)
这是从我的班级笔记中复制的,所以如果缺少或不正确,请不要责怪我! …
你如何在C++中创建一个Repeat-Until循环?而不是标准的While或For循环.我需要在每次迭代结束时检查条件,而不是在开始时检查.
我已经看到了两种在Python中创建无限循环的方法:
while 1:
do_something()
Run Code Online (Sandbox Code Playgroud)while True:
do_something()
Run Code Online (Sandbox Code Playgroud)这些之间有什么区别吗?比另一个更pythonic?
Perl没有$_使用以下语法自动进行本地化的设计(或技术)原因是什么:
while (<HANDLE>) {...}
Run Code Online (Sandbox Code Playgroud)
哪个被重写为:
while (defined( $_ = <HANDLE> )) {...}
Run Code Online (Sandbox Code Playgroud)
所有隐式写入其它结构的$_以集中方式做到这一点(for/foreach,map,grep),但是while,必须明确定位变量:
local $_;
while (<HANDLE>) {...}
Run Code Online (Sandbox Code Playgroud)
我的猜测是它与在命令行开关的"Super-AWK"模式下使用Perl有关,但这可能是错误的.
因此,如果有人知道(或者更好地参与语言设计讨论),您能否与我们分享这种行为背后的原因?更具体地说,为什么允许值$_在循环之外保持被认为是重要的,尽管它可能导致的错误(我倾向于在SO和其他Perl代码中看到所有这些)?
如果从上面不清楚,$_必须进行本地化的原因while如下例所示:
sub read_handle {
while (<HANDLE>) { ... }
}
for (1 .. 10) {
print "$_: \n"; # works, prints a number from 1 .. 10
read_handle;
print "done with $_\n"; # does not work, prints the last line read from …Run Code Online (Sandbox Code Playgroud) ArrayList<Object> list = new ArrayList<Object>();
list.add(12);
list.add("Hello");
list.add(true);
list.add('c');
Iterator iterator = list.iterator();
while(iterator.hasNext())
{
System.out.println(iterator.next().toString());
}
Run Code Online (Sandbox Code Playgroud)
当我在IntelliJ IDEA中输入这个Java代码时,代码分析功能建议我用for循环替换while循环,因为我正在迭代一个集合.为什么是这样?
我必须为我的comp课程制作这个游戏,我无法弄清楚如何突破这个循环.看,我必须通过滚动更大的数字来对抗"计算机",看看谁有更高的分数.但我无法弄清楚如何从轮到我"打破",并转向计算机转向.我需要"Q"(退出)来表示计算机开始转动,但我不知道该怎么做.
ans=(R)
while True:
print('Your score is so far '+str(myScore)+'.')
print("Would you like to roll or quit?")
ans=input("Roll...")
if ans=='R':
R=random.randint(1, 8)
print("You rolled a "+str(R)+".")
myScore=R+myScore
if ans=='Q':
print("Now I'll see if I can break your score...")
break
Run Code Online (Sandbox Code Playgroud) 如何修改以下代码,以便在zsh中运行时,它会一次扩展$things并遍历它们?
things="one two"
for one_thing in $things; do
echo $one_thing
done
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
one
two
Run Code Online (Sandbox Code Playgroud)
但如上所述,它输出:
one two
Run Code Online (Sandbox Code Playgroud)
(我正在寻找在bash中运行上述代码时获得的行为)