Java学习之易错题

29 篇文章 0 订阅
26 篇文章 0 订阅

1、下列语句序列执行后,a的值是

public class Test {

public static void main(String args[]){

int a = 5;

System.out.println((a % 2 ==1)?(a+1)/2:a/2);

结果:3

分析:涉及算数运算符、三元运算符的运算、逻辑运算符的综合运算,(a % 2 = 1,a 模 2 的值等于1,再使用结果与1比较是否相等,若结果正确,返回值1,不正确返回值2。本式子中的两个值都是需要计算的,值1 : (5 + 1)/ 2 = 3,值二:5 / 2 = 2,此处设计到类型的转换,5 / 2 = 2.5,但是因为本例中最高类型为int,故最终的结果舍去小数部分为int类型,这是一个易错点。

2、有如下代码

int a = 5;

int b = (a++) + (--a)+(++a) + (a--);

问执行完之后, b的结果是多少?

结果:22

分析:涉及知识是a++,++a,--a,a--的运算,a++是先使用本身参与运算,然后再+1,a--同理,本身参与运算后再-1;++a是先本身+1,然后再参与运算,--a是本身-1再参与运算。在充分详知该知识点,在看本例,a++是使用a = 5参与运算,此时a=6,--a是a自减a = 5参与运算,此时a = 5,++a是上一个a的基础上自增,a=6,此时a = 6;a--是a先参与运算,a = 5,最后得a = 5。整个式子:5 + 5 + 6 + 6 = 22.

3、int n,用表达式表示n的个位,十位,百位

个位:a%10

十位:a/10%10

百位:a/100

4、(if语句)某项查询执行之后,n条结果,单页显示m条记录,第i页显示第几条到第几条?

int totle = 23;// 总记录数
        int single = 5;// 单页显示记录数
        int pages = totle % single == 0 ? totle / single : totle / single + 1;// 总页数
        int target = 5;// 目标页
        if (target <= pages) {// 目标页必须小于总页数
            System.out.println((target - 1) * single + 1 + " ~ "
                    + (target * single <= totle ? target * single : totle));//总记录数为最大显示数
        }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值