| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4904 人关注过本帖
标题:=和==在if()函数中的区别
只看楼主 加入收藏
笨女孩
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2011-7-13
结帖率:100%
收藏
已结贴  问题点数:12 回复次数:15 
=和==在if()函数中的区别
程序代码:
#include<stdio.h>
main()
{
    int x=3,y=0,z=0;
    if(x=y+z)
        printf("*****\n");
    else
        printf("######\n");
    return 0;
}


#include<stdio.h>
main()
{
    int x=3,y=0,z=0;
    if(x==y+z)
        printf("*****\n");
    else
        printf("######\n");
    return 0;
}


######
Press any key to continue
这两个程序的区别在if()函数,我觉得是一样意思的,但不知道是否正确,它们的输出也是一样的。
搜索更多相关主题的帖子: 函数 
2012-01-18 13:07
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
收藏
得分:0 
第一个判断x是否为真
第二个判断x=y+z是否为真
得出结果进行的判断不一样

The quieter you become, the more you can hear
2012-01-18 13:29
weipeng1217
Rank: 5Rank: 5
等 级:职业侠客
帖 子:175
专家分:386
注 册:2012-1-12
收藏
得分:10 
一个等号表示赋值,
两个等号相当于数学中等号的含义,表示判断两边是否相等,
在if()中,经常用到==,判断条件的真假

#include<stdio.h>
 main()
 {
     int x=3,y=0,z=0;
     if(x=y+z)            //把y与z的和赋值给x,此时x值为0,表达式的值为假,所以执行else中的语句
         printf("*****\n");
     else
         printf("######\n");          //所以改程序的结果显示为:######
     return 0;
 }


 

#include<stdio.h>
 main()
 {
     int x=3,y=0,z=0;
     if(x==y+z)                //判断x与y+z的值是否相等,显然3不等于0,所以表达式的值为0,程序执行else中的语句
         printf("*****\n");
     else
         printf("######\n");   //所以改程序的结果显示为:######

     return 0;
 }

[ 本帖最后由 weipeng1217 于 2012-1-18 13:42 编辑 ]

C坛友交流群 群号:161091913 ,欢迎经常在线的朋友加入,一起学习,一起进步。。
2012-01-18 13:33
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
哪本书上写的if()叫函数?

总有那身价贱的人给作业贴回复完整的代码
2012-01-18 13:42
BigPei
Rank: 3Rank: 3
来 自:苏州
等 级:论坛游侠
威 望:6
帖 子:43
专家分:161
注 册:2012-1-10
收藏
得分:0 
这里的输出一样是纯属偶然的。
程序1:
    等号是赋值运算。x=y+z(x=3,y=0,z=0)的执行顺序是先把y(0)赋值给x,然后用x(0)加上z(0)。最终结果为0。而0在程序中代表的是false,所以打印:########。
程序2:
    双等号是条件判断。+运算符优先级高于==。所以先只想y(0)+z(0), 然后判断x(3)与(y+z)(0)是否相等,显然是不相等的。所以打印:#######。


Fighting forever.
2012-01-18 13:46
BigPei
Rank: 3Rank: 3
来 自:苏州
等 级:论坛游侠
威 望:6
帖 子:43
专家分:161
注 册:2012-1-10
收藏
得分:0 
回复 4楼 embed_xuel
if()~~

Fighting forever.
2012-01-18 13:48
俺是小c
Rank: 2
来 自:上海师范大学
等 级:论坛游民
帖 子:38
专家分:64
注 册:2012-1-17
收藏
得分:2 
我个人看法解释一下,第一个if判断的是:判断x是否为非零的数,也就是是否为真,左边本身x为3,也就是真的,右边是x+y为0,也就是假,所以第一个if包含的运算不需要看了。第二个if判断的是:值判断,也就是简单的说,x的值是否等于x+y的值。。。

我叫小C,希望在编程生活里认识很多志同道合的朋友。
2012-01-18 13:50
笨女孩
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2011-7-13
收藏
得分:0 
回复 4楼 embed_xuel
额,我错了,是语句。
2012-01-18 15:22
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:0 
if(0为真)
if(3等于0+0)

不管怎么走、总有一个终点...
2012-01-18 17:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 楼主 笨女孩
又沒看書了吧,作業了吧。

授人以渔,不授人以鱼。
2012-01-18 18:23
快速回复:=和==在if()函数中的区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026643 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved