搜索
查看: 31301|回复: 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]


>>更多内容陆续更新<<
发表于 2013-3-20 23:45:58 | 显示全部楼层
ahalei 发表于 2012-7-6 20:19
需要#include


Sleep  S要大写  还有要加一条指令 #include <windows.h>
发表于 2012-8-30 23:37:33 | 显示全部楼层
加油~~我看好你 — —
发表于 2012-8-30 16:43:09 | 显示全部楼层
while(1>0)后多了一个;
print应输入成printf

发表于 2012-7-5 15:17:37 | 显示全部楼层
盼星星盼月亮盼来第三章,等的花都谢了,无论如何,一直保持支持啊哈C,强顶!
发表于 2012-7-5 15:39:21 | 显示全部楼层
#include <stdio.h>
int main( )
{
while(1>0)
  printf("hello");
sleep(5000);
return 0;
}
发表于 2012-7-5 17:06:39 | 显示全部楼层
Oh!终于出第三章了。
发表于 2012-7-5 18:32:44 | 显示全部楼层
哈哈,啊哈磊编的教材果然很有趣啊
发表于 2012-7-5 19:21:24 | 显示全部楼层
第一节 看着  确实很有意思  这几天建设BBS辛苦了
发表于 2012-7-5 19:31:19 | 显示全部楼层
谢谢C哥,真好
发表于 2012-7-5 22:38:24 | 显示全部楼层
太好了。终于出第三章了
发表于 2012-7-5 23:41:48 | 显示全部楼层
继续加油啊,通俗易懂
发表于 2012-7-5 23:43:41 | 显示全部楼层
找茬答案
1、while(1>0);    这里不能有;
2、print("hello");  这里输出语句拼写错了,应该是printf
发表于 2012-7-6 01:10:51 | 显示全部楼层
没那么正规才好理解啊。
 楼主| 发表于 2012-7-6 11:15:46 | 显示全部楼层
nmjkl 发表于 2012-7-5 23:43
找茬答案
1、while(1>0);    这里不能有;
2、print("hello");  这里输出语句拼写错了,应该是printf

{:soso__14138984254237925132_1:}
发表于 2012-7-6 18:53:32 | 显示全部楼层
我电脑C语言里为什么SLEEP显示是error
发表于 2012-7-6 20:18:56 | 显示全部楼层
xxzzxxzzzzs 发表于 2012-7-6 18:53
我电脑C语言里为什么SLEEP显示是error

看来你用的不是ahac
发表于 2012-7-6 20:19:25 | 显示全部楼层
xxzzxxzzzzs 发表于 2012-7-6 18:53
我电脑C语言里为什么SLEEP显示是error

需要#include<windows.h>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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