作者ck940560 (小弼)
看板NTUBIME101HW
标题Re: [问题] 关於C++
时间Mon Sep 29 21:26:50 2008
※ 引述《vincent79715 (轩~)》之铭言:
: 程式码後面的 system("PAUSE"); 要加吗?
: 之前自学的时候好像有看到说
: 正式的是不需要加的
: 那交作业的时候要加吗?
: 请大家帮我解惑
刚刚稍微研究了一下,(应该说是复习@@)
不加system("pause");的话DOS视窗会马上跳掉,
加了以後会有讨厌的请按任意键继续‧‧‧‧‧‧。
所以我就想到了一个方法,
既可以保有原来的画面,还可以增加程式的可用性,
(说不定会加分唷XD)
那就是用回圈(Loop)。
回圈有三种,for loop、while loop和do loop。
for和while最常见,do loop比较少人用。
现在就先挑比较容易的while loop来讲。
首先,在定义变数的地方多加一个int i; (不一定要i,也可以是pig)
然後,把要重覆执行的程式(分辨奇偶、相加、换算)放到以下程式码里:
int main()
{
while (i<1)
{
//这里放要重覆执行的程式码
{
}
记得这时候就可以把system("pause")拿掉了,
否则每次执行动做完都会出现请按任意键继续‧‧‧‧‧‧。
i<1是程式继续的条件,
这样写就表示只要i<1就会一直重复回圈。
大家一定很纳闷,i到底是什麽东西? 连i是多少都不晓得 怎麽知道他有没有小於1?
没错! 这是个好问题。
C++在宣告变数时,会把宣告的变数预设成0,
一般有限次数的回圈(loop)都会加个i++、i+=1或是i=i+1之类的东西,
是为了要让决定回圈是否继续的i达到停止的条件。(这个程式是i>=1停止)
但是现在我们没有加,所以i不管回圈跑了多少次都还是0,
因此写出来的程式不管重跑多少次都不会停下来。
附上for loop无限回圈的程式码,
int main()
{
for (int i=0; i<1; i--)
{
//这里放要重覆执行的程式码
}
}
注意! 我for的後面有int i=0,
这也是宣告变数的一种方式,所以前面就不用先宣告i。
祝各位交作业愉快~~
我要去冲微积分了
顺啦!~
囧 麤
┌|/
/\
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.172.156
※ 编辑: ck940560 来自: 220.136.172.156 (09/29 21:29)
1F:推 naruto1031:要是电脑比较老旧的有可能会当机 09/29 21:41
2F:推 typenephew:为什麽我都看不懂 09/29 21:41
3F:推 zumwohl:没学过的就会看不懂阿 09/29 21:48
4F:→ ck940560:我家没有当耶XD 他已经活六年了 最近power开始倾向烧毁 09/29 21:51
※ 编辑: ck940560 来自: 220.136.172.156 (09/29 21:53)
5F:推 sb0917:while(1)即可... 09/29 21:52
6F:→ ck940560:楼上方法测试成功! 09/29 21:54
7F:→ sb0917:不会当机...除非写第三题...... 09/29 21:54
8F:→ ck940560:第三题用回圈会有河马军团... 09/29 21:55
9F:→ sb0917:我的是一堆郑先生,我想如果用柏油助教可能会当了我 09/29 22:14
10F:推 zumwohl:我用柏油耶.....完了 09/29 22:26
11F:推 sb0917:没打"OOO的 烧死你全家"应该就没事啦~ 09/29 22:27
12F:推 zumwohl:呵我改成我爱c++....有加分吧 09/29 22:28
13F:推 honoYang:不会 我爱死柏油了 有特殊造型可加分 啾咪~~~ 09/30 01:39
14F:→ honoYang:用无限回圈的话....可能会扣分吧....囧 09/30 01:42
15F:推 hi08060204:"C++在宣告变数时,会把宣告的变数预设成0" @@ really? 09/30 01:57
16F:→ ck940560:我被神怀疑了-.-.....怕怕 09/30 20:34
17F:→ ck940560:至少目前我查到是这样 09/30 20:34
18F:→ ck940560:测试成功~没指定的话预设真的是0 09/30 20:46
19F:→ ck940560:不过我的VC++好像快坏掉了@@ 连开新专案都会当机orz 09/30 20:47
20F:推 hi08060204:int i; while(i<1) { }; 按照你说的 会跳进回圈? 09/30 22:27
21F:→ hi08060204:还是你的意思跟我想的不一样/ 09/30 22:27
22F:→ ck940560:是这样没错 我测试的时候後面加i++,跑一次就结束 09/30 22:35
23F:→ ck940560:改成i<2的时候会跑两次 09/30 22:35
24F:→ ck940560:话说我{}後面都没有加; ...C用习惯了 09/30 22:37
25F:推 hi08060204:好吧 我是DEV 去跑的 跟你叙述的不太一样 09/30 22:38
26F:→ hi08060204:上面那个分号是多打的 09/30 22:39
27F:→ hi08060204:当我打 int i; while(i){} 反而会无限回圈 09/30 22:41
28F:→ hi08060204:跟你说的却是相反@@ 09/30 22:41
29F:推 hi08060204:dev i<1 这条件会不成立 09/30 22:51