JAVA 的++y(--y)和y++(y--) 用法

作者:孙英鹏   撰写时间:2019年4月18日

JAVA 的++y(–y)和y++(y–) 用法

今天要讲的是JAVA运算符,想必大家都知道运算符是什么,最简单的无非就是加、减、乘、除(+、-、*、%),但我要讲的是运算符当中的++y(­­y)和y++(y­­)的应用方法,来看一下。

首先说一下++y(­­y)和y++(y­­)的区别:
++y(­­y):放在前面的++(­­)先将y的值自增(自减)1,然后在与后面的算。
y++(y­­): 放在后面的++(­­)先算出值,然后再将 y 的值自增(自减)1。

看一下++例子:

如图:
在这里插入图片描述

结果:
在这里插入图片描述

算法说明:
先说一下第二个:为什么b++是等于6呢?因为++在后面,所以先算出b等于5然后在自增1,所以结果是6。
算完第二个了,再来看一下第一个++a的算法,首先++在前面,所以先自增a的值,算到这里,你们是不是很疑惑,为什么不是11,而是12,在这里我要说明一下,这道题是一个整体,我们要看全部(开始我也和你们一样,也是算出是11),前面是不是有a、b、c三道,c=a++ + b++,所以先算c里面的a++等于11,然后在算下面要打印的++a,所以结果是12,说完再看一下第一个是不是有道理,不相信的可以自己做一下,把b++改为++b,结果肯定是7。

如图:
在这里插入图片描述

第三个就不说了,很简单,10+5=15。

说完第一个例子,再说第二个例子。

如图:
在这里插入图片描述

结果:
在这里插入图片描述

算法说明:
第一:­­在前面自减1,10-1=9,结果等于9。
第二:­­在后面,先算出e等于5,所以结果等于5,这时可能有人说,为什么不是4,因为–放在后面,它的算法是先算e, 所以结果是等于5。

如果想知道为什么e等于5,可以在后面打印一下e,得出结果是4。

结果:
在这里插入图片描述

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
抱歉,我在之前的代码中犯了一个错误。请尝试将`origin`变量的声明移动到`CustomWindow`类的顶部,如下所示: java import java.awt.*; import javax.swing.*; import java.awt.event.*; public class CustomWindow extends JFrame { private JPanel titleBarPanel; private JButton minimizeButton; private JButton maximizeButton; private JButton closeButton; private Point origin; public CustomWindow() { // 设置窗口大小和背景色 this.setSize(1100, 700); this.getContentPane().setBackground(new Color(204, 204, 204)); // 去除窗口边框默认样式 this.setUndecorated(true); // 禁用窗口缩放 this.setResizable(false); // 居中显示窗口 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int screenWidth = screenSize.width; int screenHeight = screenSize.height; int windowWidth = this.getWidth(); int windowHeight = this.getHeight(); int x = (screenWidth - windowWidth) / 2; int y = (screenHeight - windowHeight) / 2; this.setLocation(x, y); // 鼠标可以移动窗口 titleBarPanel = new JPanel(); titleBarPanel.setBackground(Color.WHITE); titleBarPanel.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { origin = new Point(e.getX(), e.getY()); } @Override public void mouseReleased(MouseEvent e) { origin = null; } }); titleBarPanel.addMouseMotionListener(new MouseMotionAdapter() { @Override public void mouseDragged(MouseEvent e) { Point p = getLocation(); setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y); } }); // 添加最小化、最大化和关闭按钮 minimizeButton = new JButton(new ImageIcon("minimize.png")); maximizeButton = new JButton(new ImageIcon("maximize.png")); closeButton = new JButton(new ImageIcon("close.png")); minimizeButton.setBorderPainted(false); maximizeButton.setBorderPainted(false); closeButton.setBorderPainted(false); minimizeButton.setOpaque(false); maximizeButton.setOpaque(false); closeButton.setOpaque(false); minimizeButton.setContentAreaFilled(false); maximizeButton.setContentAreaFilled(false); closeButton.setContentAreaFilled(false); // 添加按钮功能 minimizeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setExtendedState(JFrame.ICONIFIED); } }); maximizeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (getExtendedState() != JFrame.MAXIMIZED_BOTH) { setExtendedState(JFrame.MAXIMIZED_BOTH); } else { setExtendedState(JFrame.NORMAL); } } }); closeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); // 高亮按钮 minimizeButton.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { minimizeButton.setIcon(new ImageIcon("minimize_highlight.png")); } @Override public void mouseExited(MouseEvent e) { minimizeButton.setIcon(new ImageIcon("minimize.png")); } }); maximizeButton.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { maximizeButton.setIcon(new ImageIcon("maximize_highlight.png")); } @Override public void mouseExited(MouseEvent e) { maximizeButton.setIcon(new ImageIcon("maximize.png")); } }); closeButton.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { closeButton.setIcon(new ImageIcon("close_highlight.png")); } @Override public void mouseExited(MouseEvent e) { closeButton.setIcon(new ImageIcon("close.png")); } }); // 将按钮添加到标题栏 titleBarPanel.add(minimizeButton); titleBarPanel.add(maximizeButton); titleBarPanel.add(closeButton); // 将标题栏添加到窗口 this.add(titleBarPanel, BorderLayout.NORTH); // 设置窗口关闭操作 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new CustomWindow(); } }); } } ``` 这样,`origin`变量就能在窗口移动的方法中正确地使用了。希望这次能帮到你!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值