前言
嘿,朋友们!一年一度的金九银十又到了,今天我们来聊聊Java八股文中那些的面试题:i++
、++i
、i--
和--i
。它们就像是我们编程世界里的“加减小能手”,在变量的值上轻松地加一或减一。这四个在循环、迭代和条件语句中无处不在,也是面试官们的“宠儿”。别担心,本文将带大家深入了解它们的工作原理,并通过一个实际面试代码示例来展示它们的行为。
基本概念
首先简单介绍一下,这四个知识点的基本概念:
- i++(后缀自增):先使用变量的值,然后再给它加个1。
- ++i(前缀自增):先把变量的值加个1,然后再用这个新值。
- i--(后缀自减):先使用变量的值,然后再给它减个1。
- --i(前缀自减):先把变量的值减个1,然后再用这个新值。
这些操作符可以用于任何数值类型的变量,包括int
、float
、double
等,这里强行记忆还是毕竟混淆的,这里给大家一个口诀:“i++先用后加,++i先加后用,i--先用后减,--i先减后用”。
实际面试题目
上面了解这四个知识点的基本概念,接下来直接通过一个实际面试题来具体分析这些操作符的行为:
public class IPlusPlus
{
public static void main(String[] args)
{
int i = 1;
System.out.println("i: " + i);
System.out.println("++i: "+ ++i);
System.out.println("i++: "+ i++);
System.out.println("i: " + i);
System.out.println("--i: "+ --i);
System.out.println("i--: "+ i--);
System.out.println("i: " + i);
}
}
可以尝试自己算一下,分别输出的i是多少,面试题最终结果如下:
逐步解析
如果对于初级开发,估计遇到这个问题会有点晕,但是不必着急,只需要根据上面口诀,逐步分析即可。
-
初始化变量: 首先第一行代码,这里我们定义了一个整型变量
i
,并给它起了一个初始值1。int i = 1;
-
输出初始值:
System.out.println("i: " + i); // 输出 i: 1
这里我们输出变量
i
的初始值,此时i
的值为1。 -
前缀自增操作:
System.out.println("++i: "+ ++i); // 输出 ++i: 2
其次在这里,
++i
表示先把i
的值加个1,然后输出。因此,i
的值变为2,输出结果为++i: 2
。 -
后缀自增操作:
System.out.println("i++: "+ i++);// 输出 i++: 2
接下来是后缀自增操作
i++
,它表示先输出i
的当前值,然后再给它加个1。因此,输出结果为i++: 2
,之后i
的值变为3。 -
输出当前值:
System.out.println("i: " + i);// 输出 i: 3
此时,
i
的值为3,因此输出结果为i: 3
。 -
前缀自减操作:
System.out.println("--i: "+ --i);// 输出 --i: 2
这里是前缀自减操作
--i
,它表示先把i
的值减个1,然后输出。因此,i
的值变为2,输出结果为--i: 2
。 -
后缀自减操作:
System.out.println("i--: "+ i--);// 输出 i--: 2
后缀自减操作
i--
表示先输出i
的当前值,然后再给它减个1。因此,输出结果为i--: 2
,之后`I的值变为1。 -
输出最终值:
System.out.println("i: " + i);// 输出 i: 1
最终,
i
的值为1,输出结果为i: 1
。
总的来说,记住口诀“i++先用后加,++i先加后用,i--先用后减,--i先减后用”,这个面试题便可以轻松解答。
结论
通过上述代码示例和逐步解析,可以清楚地看到i++
、++i
、i--
和--i
操作符的行为差异。前缀形式(++i
和--i
)会在表达式计算之前改变变量的值,而后缀形式(i++
和i--
)则是在表达式计算之后改变变量的值。
这种差异在复杂的表达式或者循环中可能会导致不同的结果,因此在编程时需要特别注意它们的使用。理解这些细微差别对于编写正确且高效的代码至关重要。希望这篇文章能让你对这些小家伙有更深入的了解!
欢迎大家评论留言,遇到了哪些面试题,一起讨论。