zoukankan      html  css  js  c++  java
  • 面试题一

    package com.foreign;
    public class Inc { 
        public static void main(String[] args) { 
           Inc inc = new Inc(); 
           int i = 0; 
           inc.fermin(i); 
           i= i ++; 
           System.out.println(i);
        
        
        void fermin(int i){ 
           i++; 
        
    }
     
    sout 输出是多少?
    ---------------------------------------------------------------------------------摘自牛客网------------------------------------------------------------------------------
    i++      先赋值在计算结果;
    ++i      先计算结果再赋值。
    int i = 0;  
           i = i ++;  // 左边这个i其实是障眼法,就是一个中间变量,可以和下行的i合并;
           System.out.println(i);   这里等价于:
      int i = 0;
           System.out.println(i++);   这下再看,先赋值(先将i传给println函数打印出来,在计算表达式结果)
    所以打印出来的是0,实际上整个表达式的结果已经是1了,只是没有打印出整个表达式的结果。
    所以我们知道如下结论:
    1、无论怎么变,i++和++i的整个表达式的结果都是1.
    2、有时我们打印的是表达式的结果(System.out.println(++i)),
          有时我们打印的只是一个中间变量(System.out.println(i++))。
    Ps:
    int i = 0;  
    i++;
    System.out.println(i);  //值为1    打印的是表达式的结果

    int i = 0;  
    ++i;
    System.out.println(i);  //值为1     打印的是表达式的结果 

    int i = 0;  
    i = i++;
    System.out.println(i);  //值为0      打印的是中间变量(JVM中间缓存变量机制)

    int i = 0;  
    i = ++i;
    System.out.println(i);  //值为1    打印的是表达式的结果
  • 相关阅读:
    Django 初探--Django的开发服务器及创建数据库(笔记)
    Django初探--开发环境搭建(笔记)
    python文件处理--笔记
    python-property、docstring--笔记
    python之Lambda函数---笔记
    参数拆分-- 笔记
    python—带形状的词云图
    python—压缩文件
    python—dataframe用法
    python—mysql数据库读取表1获取name作为参数,传入访问表2获取age,结果存入excel
  • 原文地址:https://www.cnblogs.com/fangke/p/9317235.html
Copyright © 2011-2022 走看看