Java基础-自增自减运算符练习题
我们用一个简单的例子分析下边的运行结果:
package demo; public class ZiZeng {
public static void main(String[] args) { int i = 0;
test(i);
// i = i++;
i = ++i;
System.out.println("----" + i);
// i = i++;
i = i++;
System.out.println("****" + i); } public static void test(int i){
i++;
System.out.println("++++" + i);
}
}
输出结果:
++++1
----1
****1
对以上的执行结果分析如下:
逐行代码分析:
1, 在第5行定义了 int i = 0;
2, 在 第6行调用了test(i)方法,此时的 i = 0作为实际参数将值0传给了test方法的形式参数i,
test方法中的i 是形式参数,形式参数值的改变不会影响实际参数,所以test方法中的i的值是1,而,main方法中i的值仍然为0
3, 第18行输出 1
4, 在第8行中, i = ++i,先自增后赋值,所以此时 i = 1
5, 第9行输出 i = 1;
6, 在第11行中,i = i++,先赋值再自增,,所以此时i = 1
7, 第12行输出 1
练习题2:
对于以下,有int x = 5, y = 6, z;
题目1:z = ++x + y++;
题目2:z = ++x + x++;
题目3:x = ++x + x++;
题目4:z = x > y ? ++x : y++;
答案:
题目1:x = 6; z = 12; y = 7
题目2:x=7, y = 6, z=12
题目3:x=12
题目4:x = 5, y = 7, z = 6
练习3,
int
a=1;
System.out.println(++a+a);
int i = 0;
int j = i++;
int k = --i;
这段代码运行后,i等于多少?j等于多少?k等于多少?
i:0
j:0
k:0
1. int i = 0;
2. int j = i++ + ++i;
3. int k = --i + i--;
代码执行后i、j、k分别等于多少呢?
在第二个例子中,对于int j=i++ + ++i;,首先运行i++,i的值0被用于加运算(+),之后i自增值变为1,然后运行++i,i先自增变为2,之后被用于加运算,最后将i两次的值相加的结果0+2=2赋给j,因此这行代码运行完毕后i=2、j=2;对于int k=--i + i--;用一样的思路分析,具体过程在此不再赘述,结果应该是i=-2、k=-2。
练习5,
int a=5;
int b=++a; // ++在前 先运算再赋值 现在 a=b=6;
int c=--b+a; //--优先级比+高,先计算-- c此时b=5再加上a 5+6=11;再赋值
int c=a+(++b); //同理 括号优先级最高 先计算++b 此时b=7 6+7=13;再赋值
Java基础-自增自减运算符练习题的更多相关文章
- JAVA中自增自减运算符(i++与++i的区别)
注意: 自增运算符和自减运算符只能用于变量,而不能用于常亮或表达式 运算符 运算 范例 结果 ++ 自增(前):先运算后取值 a=2;b=++a; a=3;b=3; ++ 自增(后):先取值后运算 a ...
- Java基础——自增自减及初识Math类
自增自减及初识Math类 public class Demon05 { public static void main(String[] args) { // ++ -- 自 ...
- 023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之——自增自减运算符
023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之--自增自减运算符 本文知识点:Java算术运算符中的自增自减运算符 自增自减运算符 之前我们 ...
- java入门---运算符&算术运算符&自增自减运算符&关系运算符&位运算符
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 ...
- 【java从入门到精通】day-06-基本运算符-自增自减运算符
1.运算符 java语言支持如下运算符: 算术运算符:+,-,*,/,%,++,-- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=,instanceof 逻辑运算 ...
- java自增(自减)运算符
自增(自减)运算符: ++ --就是可以将当前变量自我增加(减少)1 的运算符. i++, 后++, 先将 i 的值作为整个表达的值, 然后将 i 增加 1. ++i, 先++, 先将 i 增加 ...
- Java基础语法01——变量与运算符
本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).
- 2-1赋值运算符 & 2-2自增自减运算符 &2-3
2-1赋值运算符 先定义一个变量,把定义好的变量在赋值给另外一个变量.变向之间的互相赋值 2-2自增自减运算符 元素符,放在变量前和变量后的区别 先进行自增运算,再进行赋值运算.这里先进行num1的+ ...
- 【转】 C语言自增自减运算符深入剖析
转自:http://bbs.csdn.net/topics/330189207 C语言的自增++,自减--运算符对于初学者来说一直都是个难题,甚至很多老手也会产生困惑,最近我在网上看到一个问题:#in ...
随机推荐
- Python学习【day02】- Python基础练习题
#!/usr/bin/env python # -*- coding:utf8 -*- # 执行Python 脚本的两种方式 # 答:①在windows的cmd窗口下 > D:/Python/p ...
- excel库中数据下载
PHP实现EXCEL下载数据 <?php include("Classes/PHPExcel.php"); $exce=new PHPExcel(); $exce->s ...
- JavaScript使用readAsDataURL读取图像文件
JavaScript使用readAsDataURL读取图像文件 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以 ...
- 2种方法实现java对象的深拷贝
2种方法实现java对象的深拷贝 2017年12月03日 22:23:07 iCoding91 阅读数 4420更多 分类专栏: java 版权声明:本文为博主原创文章,遵循CC 4.0 BY-S ...
- leecode刷题(31) -- 回文数
leecode刷题(31) -- 回文数 回文数 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输 ...
- leecode刷题(30)-- 二叉树的后序遍历
leecode刷题(30)-- 二叉树的后序遍历 二叉树的后序遍历 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 思路 ...
- 基本MVC2模式创建新闻网站
一.介绍 这实现比较简单,就是对两张表的操作,登录利用session验证用户信息. 2.效果
- 客户端相关知识学习(一)之混合开发,为什么要在App中使用H5页面以及应用场景、注意事项
混合开发 随着移动互联网的高速发展,常规的开发速度已经渐渐不能满足市场需求.原生H5混合开发应运而生,目前,市场上许多主流应用都有用到混合开发,例如支付宝.美团等.下面,结合我本人的开发经验,简单谈一 ...
- javaScript基本使用api
基本方法 isArray() 判断数组 isArray() 方法用于判断是否是数组(有兼容性) 语法:Array.isArray(arr) 返回值:是数组,返回true.不是数组,返回false. i ...
- Excel中的常用快捷键
1)工作表之间快速切换 Ctrl+PageUp切换的是当前所在工作表的前一个工作表, Ctrl+PageDown切换的是当前所在工作表的后一个工作表. 2)Ctrl +Home 强迫回到最前一个单元格 ...