我打算放弃.net,开始自学Java了,我会把我自己的学习过程记录在此。但是只记录一些开发的时候遇到的问题,至于基础编程Java IO和多线程编程以及maven,spring什么的另外开博客记录。
分支需要注意的问题,例如switch case 这个条件分支,switch的变量和case后的常量必须是同一个类型的
例如
int a =9; switch (a) { case a<10: //这是错的 System.out.println("abc"); break; case 8: System.out.println("123"); break; }
a是int变量,第一个case后面是a<10是一个Bool值的类型,这就是错的,第二个case后的8才是对的。
对于switch这个分支条件,我居然还是不熟悉。例如以下的例子:
package com.company; public class Main { public static void main(String[] args) { int age=8; switch (age) { case 0: System.out.println("0"); case 1: System.out.println("1"); default: System.out.println("默认"); } } }
像这种,输出的结果是默认,这是毫无疑问的,但是接下来的这个例子,我就疏忽了:
package com.company; public class Main { public static void main(String[] args) { int age=8; switch (age) { default: System.out.println("默认"); case 0: System.out.println("0"); case 1: System.out.println("1"); } } }
这个例子的输出结果是 默认 0 1 ,我是出乎意料的,说明基本功不扎实。 这个例子把Default放到了第一位,所以会先执行default语句,而switch在执行过一次之后,假如没有break语句,那么switch会把接下来的所有分支都执行一边,所以break的意义还是非常大的。
由于我使用的IDE是idea,我不知道怎么去快捷的打出代码,Visual Studio可以双击Tab键补全代码,idea的方法是,打的时候找那种带有Create Loop字样的,例如我打一个for循环:
不要选择上面那个for,否则括号什么的还得自己去打。
原文:https://www.cnblogs.com/yunquan/p/9517369.html