我想问下 一点C语言的基础问题!

来源:百度知道 编辑:UC知道 时间:2024/05/22 20:29:30
#include"stdio.h"

void main()
{
long a;

while((a=3)!=0)
{printf("%d",a);}
}
这一段程序能输出3。

#include"stdio.h"

void main()
{
long a;

while(a=3)
{printf("%d",a);}
}
这段程序无输出。
我的问题是: while的语句里面 到底是要 判断 还是要 赋值啊?
其实我的 意思就是, while ()里面, 是可以先 对变量赋值, 在进行判断的么??
因为上面第一个例子, 编译后 是运行成功的啊!

while((a=3)!=0)
{printf("%d",a);
这里要注意的是先来看!=0这个。也就是当什么什么!=0的时候才会循环。
再全部来看(a=3)!=0的意思就是把a赋值3再来判断。显然此时a=3的时候!=0.所以可以

while(a=3)
{printf("%d",a);
而这个里面,之前a没有赋值。所以a!=3.因此赋值不成立。所以不会做输出。

while里最主题的是判断。当然这里可以是正常的判断句。。也可以是逻辑判断句。甚至可以是数字,然后再去判断,最后可以在while()里用break跳出。
举几个例子。
1,最常见的是这样while(i<=10)或者while(n!=-1)或者while(n!=‘a’)
2.可以表达式加上判断。就像这是一样
while((a=3)!=0)
3可以是一个数字或者一个动作
while(1){
.
.
if(n>5)
break;/*从这里跳出*/
}
while(scanf("%d",&a)){
.
.
if(a==-1)
break;/*从这里跳出*/
}

所以总结一下。一般while里是需要判断句的。可以是判断。也可以是一系统动作。
楼主要有不懂的可以hi我。具体再给你讲

补充楼主的回答:
当然是可以先定义变量。再进行判断。就如我说的第二种情况一下。
你可以先用一个表达式。赋值,运算或者逻辑表达式都可以。
再补充,请楼主看我开头的解释。。。已经帮你分析了为什么一可以,二不可以了。不懂的话hi我

判断

不行,判断

可以给事先定义的变量赋值,并且进行条件判断。

比如上面声明long a;
然后在while ()里面赋值并进行条件判断。

while ()里面, 是可以先 定义变量, 在进行