在表达式中容易被忽视,容易出错的几个小知识点

今天学习时,发现了几个以前的知识漏洞,附在下边:

/*******************************************************************************
 * 程序说明: 在表达式中容易被忽视,容易出错的几个小知识点
 * 编写者:  陈贵波
 * 日期:   2007-10-02 — 2007-10-02
 ******************************************************************************/

public class ExpressionBeingIgnored {
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        int i = 0;
        
        i = 0;
        i = i + (i = 1);
        System.out.println(i);        //输出结果为:1
        
        i = 0;
        i =(i = 1) + i;
        System.out.println(i);        //输出结果为:2
        
        i = 1;
        i += i + (i=3);
        System.out.println(i);        //输出结果为:5
        
        i = 1;
        i += (i=3) + i;
        System.out.println(i);        //输出结果为:7
        
        double d = 1.0;                    
        d += 1.5 * 3 + (++d);
        System.out.println(d);        //输出结果为:7.5
        
        d = 1.0;
        d -= 1.5 * 3 + d++;
        System.out.println(d);        //输出结果为:-4.5
        
        System.out.println("1" + 1 + 1);        //输出结果为:111
        System.out.println("1" + (1 + 1));    //输出结果为:12
    }
}

此外,我也刚刚注意到
        System.out.println("j is " + j + " and
                             k is " + k);
是不能编译通过的,必须写为
        System.out.println("j is " + j + " and k is " + k);
也就是说,""之间的字符串必须写在一行中,不能换行!

posted on 2007-10-02 14:39 陈贵波 阅读(331) 评论(1)  编辑  收藏 所属分类: 学习笔记

评论

# re: 在表达式中容易被忽视,容易出错的几个小知识点 2007-10-03 15:15 Unmi

我看到上面的问题,一定会要求编写人员重写,因为这不是写给人看的
现代编程首先是给人看的,其次才是机器

表达式中出现赋值
自加或自减然后又再次赋给同一变量

这些都是会让人惊诧莫名的,所以也就没功夫去仔细捉摸,也少浪费点精力,这跟记住每一个运算符的优先级一样无趣。  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿(16)

随笔分类(12)

随笔档案(13)

文章分类

新闻分类(1)

新闻档案(30)

相册

常去论坛

搜索

最新评论

阅读排行榜

评论排行榜