C程序设计,*的输出

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:26:52
#include<stdio.h>
void main() {
char ch='*';
int i,n=5;
while(1) {
for(i=0;i<n;i++) printf("%c",ch);
printf("\n");
if(--n==0) break;
}
}
麻烦说一下程序是如何运行的,先运行哪一句?
while(1)是什么意思呢?
N=5,为什么说N会变成-1或0呢?

这段程序从void main开始向下运行。首先是“char ch=‘*’”即定义一个字符型变量 ch
while()循环 在括号内的值为真的时候运行下面的循环体,c认为0为假非0为真,就是说只要括号里的不是0就运行。这里的while循环会一直进行,直到跳出语句。
N是之前定义的整型变量,N=5是对它附初值,并不代表N在程序中的值始终不变。在循环体最后一句 if(--N==0)break;是说没进行一次循环N的值减一,直到等于0时结束循环。这是while循环中的跳出语句。

将程序写成这样,或许更能帮助你理解:
while(1) {
printf("%c",ch);
printf("\n");
if(--n==0) break;
}

先运行哪一句就很清楚了嘛

while(1)
是循环结构
1为真0为假
那么这个while条件永远为真
在你的这个例子中if(--n==0)break;
n的值 都一直是-1的当他为0时break打存这个循环C吸有--可没有---

先运行第一句char ch='*';
while(1)的意思一直循环
问题原来是正确的,你这么一补充 就错误了。

从void main()开始到void main结束。按ctrl+F9运行。
1为真0为假 ,while(1)就是不要条件,只是一个循环。
进行一次循环N的值减一,直到等于0满足if条件就执行break,结束程序。
N不会等于-1,到0时就跳出循环。--N是自减