搜索
查看: 31331|回复: 50
打印 上一主题 下一主题

啊哈C【第三章】来了! 第1节-【永不停止的哭声】

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-5 14:20:45 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

在第一章我们就知道,如果让计算机开口说话使用的是printf语句,例如让计算机说“wa”则是printf("wa");那如果让计算机说10遍wa呢?你可以尝试这样写:
[mw_shl_code=c,true]printf("wa wa wa wa wa wa wa wa wa wa");[/mw_shl_code]
当然你也可以这样写:
[mw_shl_code=c,true]printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");
printf("wa");[/mw_shl_code]
如果要让计算机说10000遍“wa”呢?那该怎么办?我想你肯定要疯了吧。在本节我们就是要学习如何让计算机做重复的事情。

好,首先我们先来学习如何让计算机“永无止境”的说“wa”。这个很简单,如下:
[mw_shl_code=c,true]while(1>0)
{
        printf("wa");
}[/mw_shl_code]
好,赶快尝试一下,你是不是发现计算机开始无止境的说“wa”了啊。
完整代码如下:
[mw_shl_code=c,true]#include <stdio.h>
int main()
{
    while(1>0)
    {
  printf("wa");
}
sleep(5000);
return 0;
}[/mw_shl_code]
一定要尝试啊,尝试出来了在往下看。
当然了,你也可以让计算机无止境的说任何一个内容。例如
[mw_shl_code=c,true]while(1>0)
{
        printf(“bie wa”);
}[/mw_shl_code]
回到正题。在上面的代码中,有两部分组成,一个是while()另一个是一对{ }花括号的中的内容。他表示的意思是,当while后面( )中的关系表达式为真,也就是关系表达式成立的时候才执行{ }中的内容。
那么很显然(1>0)这个关系是永远成立的,所以计算机会一直执行{ }中的内容,而上面的例子{ }中只有输出一句话,所以计算机就会不停的输出。
这里顺便说一下,如果{ }中只有一条语句,那么这一对{ }花括号可以省略。也就是说可以简略写成
[mw_shl_code=c,true]while(1>0)
        printf(“wa“);[/mw_shl_code]
这个时候你可能要问了while后面圆括号中的1>0是否可以写成2>1或者3>0等等?
当然可以,如果是想让计算机永无停止的执行,你可以写任何一个关系表达式为真的式子。甚至,你可以写while(1),还记得吗我们在第二章说过,如果对于某个数字来判断真假,只要这个数不为0就是真的,例如下面段代码也可以永不停止的在屏幕上打印wa
[mw_shl_code=c,true]while(1)
  printf("wa");[/mw_shl_code]
下面我来实现一个很炫的效果,“黑客帝国”来啦O(∩_∩)O哈哈哈~
[mw_shl_code=c,true]#include <stdio.h>
int main()
{
while(1>0)
{
                printf("0 1");
}
sleep(5000);
return 0;
}[/mw_shl_code]
计算机就会不停的说0和1。
当然你可以改变一下打印的背景和字的颜色,例如改为黑色的背景,绿色的字。
还记得吗?是使用system("color  0a");这个语句。
[mw_shl_code=c,true]#include <stdio.h>
int main()
{
system("color  0a");
while(1>0)
{
                printf("0 1");
}
sleep(5000);
return 0;
}[/mw_shl_code]
是不是很像黑客帝国,哈哈。
下面来猜一猜,下面这段代码计算机会有什么反应?
[mw_shl_code=c,true]#include <stdio.h>
int main()
{
while(1<0)
{
                printf("wa");
}
sleep(5000);
return 0;
}[/mw_shl_code]
我想你应该猜到了,计算机一句wa都没有说,这是问什么呢?因为1<0这个关系表达式不成立,所以计算机没有执行后面花括号中的内容。
此时此刻你会发现计算机要么就打印无数遍永不停止,要么就一次都不打印。如果想打印指定的次数该怎么办?例如我们之前遗留下来的问题:打印1000遍wa,一次不能多一次也不能少该怎么办?不要着急,让我们一起进入下一节。
$        一起来找茬
1. 下面这段代码是让计算机“永无止境”的打印hello。其中有2个错误,快来改正吧^_^
[mw_shl_code=c,true]#include <stdio.h>
int main( )
{
while(1>0);
  print("hello");
sleep(5000);
return 0;
}[/mw_shl_code]


>>更多内容陆续更新<<
沙发
 楼主| 发表于 2012-7-6 11:15:46 | 显示全部楼层
nmjkl 发表于 2012-7-5 23:43
找茬答案
1、while(1>0);    这里不能有;
2、print("hello");  这里输出语句拼写错了,应该是printf

{:soso__14138984254237925132_1:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表