zoukankan      html  css  js  c++  java
  • 有关于i++,i=i++等符号的笔记

    最近在看一些基础知识,发现自己以前忽略掉了很多东西,而这些东西恰恰是面试笔试中最常考到的

    1.i=i+1

    这个是最简单,最明了的一个表达式 

    2.有关于i++和++i的区别

    i++和++i都是代表i=i+1的意思; 

    i++指的是i++所在的语句运行后,i再自增1;

    ++i指的是++i所在的语句运行前,i先自增1;

    其实这个大家都懂,就不在阐述;

    同时加一道题目,大家看看

    int i=0; 

    i=++i + i++ + i++ + i++;

    结果i等于多少?

    首先,“++i” 后此时i= 1;然后第一个“i++” 后,i 依然等于1;但是第二个“i++”的时候,由于第一个“i++”的滞后自增,此时i=2;

    到了第三个“i++”的时候,由于第二个滞后自增,此时i=3;所以i=1 + 1 + 2 + 3 = 7

    3. i=i++;

    如果基础不好的人,很容易和前面的表达式混淆,以为上面表达的意思是i=i++和i=i+1等价,其实差别很大的,

    原因是java中有中间缓存变量的机制,所以i=i++等价于:

    temp=i;

    i=i+1;

    i=temp;

    所以如果有使用到i的值的时候,其实i的值是不变的

    下面给一道面试题

        public static void main(String[] args) {
            int j =0;
            for (int i=0 ; i<100; i++){
                j = j++;
                //java使用了中间缓存变量
                
    //j= j ++;相当于
                
    //temp = j;
                
    //j = j + 1;
                
    //j = temp;
            }
            System.out.println(j);

        } 

    其实最后j还是等于0,而不是想象中的100。

    希望能帮助到大家。。。 

  • 相关阅读:
    webshell
    FireFox与IE开发上的一些区别
    面向对象的Jscript(顶)
    CSS背景属性
    [转]javascript中style.left和offsetLeft的使用
    BLOG排版小窍门
    面向对象的JavaScript编程
    Js脚本:动态添加HTML自定义属性以及处理html元素的自定义属性(兼容Firefox和IE)
    lookupedit 设置选项值
    comboboxEdit 不能输入,只能选择
  • 原文地址:https://www.cnblogs.com/kgrdomore/p/4223780.html
Copyright © 2011-2022 走看看