一、true和false java不允许将一个数字作为布尔值使用,可以使用所有关系操作符(>、<、>=、<=、==、!=)构造条件语句,将其转换为一个布尔值。
二、if-else 其中 else 是可选的。else if只是一个else后面紧跟另一个新的if语句。
public static void main(String[] args){ int x=55; if(x>30){ System.out.println("x大于30"); }else if (x>40){ System.out.println("x大于40"); }else{ System.out.println("其他情况"); } if(x>10){ System.out.println("x大于10"); } System.out.println("X的值:x="+x); } 结果: x大于30 x大于10 X的值:x=55说明:由 if [ else if | else ](可选)组成的语句中,如果满足其中一条,那剩下的语句不管是否满足,都不再继续执行,而是直接执行语句后面的剩余部分程序。
三、循环语句/迭代语句 使用while、do-while、for 用来控制循环。语句重复执行,直到布尔值为false为止。
public static void main(String[] args){ while(condition()){ System.out.println("循环while语句"); } } public static boolean condition(){ boolean result=Math.random()<0.99f; return result; } 结果: 循环while语句 循环while语句 循环while语句 循环while语句 循环while语句while循环语句,满足条件后,才执行循环体里的语句。其中Math.random()方法产生0和1之间(包括0,不包括1)的double类型的随机数。
public static void main(String[]args){ int i=1; do{ System.out.println("i的值,i="+i); i++; }while(i<5); } 结果: i的值,i=1 i的值,i=2 i的值,i=3 i的值,i=4do-while语句至少执行一次,即便表达式第一次计算为false。 注意,不要忘记do while()后面的分号。
public static void main(String[] args) { for(char c='a';c<128;c++){ System.out.println("c="+c); } } 结果: c=a c=b c=c c=d c=e c=ffor循环在迭代之前要进行初始化,进行条件测试,每次迭代结束后,进行步进。 初始化,布尔表达式、步进都可以为空。 例子中,变量c在for循环中被定义的,因此它的作用域就是for控制的表达式范围内。
逗号分隔符(,)可以用来分隔函数的不同参数。 逗号操作符(,)在for语句中,可以在初始化和步进中使用。这些语句均会独立执行 通过使用逗号操作符,可以在for语句内定义多个变量,但是它们必须具有相同的类型。
public static void main(String[] args) { for(int i=1,j=i+10;i<5;i++,j+=2){ System.out.println("i="+i+" ,j="+j); } } 结果: i=1 ,j=11 i=2 ,j=13 i=3 ,j=15 i=4 ,j=17forEach语法:不必创建int变量去对访问项构成的序列进行计数,foreach将自动产生每一项。
int[] array={132,32,3244,32232}; for(int a:array){ System.out.println("a="+a); } 结果: a=132 a=32 a=3244 a=32232任何返回一个数组的方法都可以使用foreach。还可以用于Iterable对象、集合对象。foreach不能在序列中步进。除非提前在数组中步进。
四、Return关键字
两方面的作用: a、指定方法返回值 b、导致当前的方法退出,不再执行方法后面的语句,而不是return后面的语句。
public static void main(String[] args) { int x=50; if(x>30){ return; } System.out.println("x大于30"); } //结果没有打印语句。该语句不会被执行。如果在返回void的方法中没有return语句,那么在该方法的结尾会有一个隐式的return。 一个方法声明将返回非void的其他东西,那么必须确保每一条代码路径都将返回一个值。
//如果没有else语句,那在末尾也要加一个return返回值。 public static String getName(int age){ if(age>10){ return "good"; }else if(age>20) { return "bad"; } return "test"; } //如果有else语句,末尾不需要return语句 public static String getName(int age){ if(age>10){ return "good"; }else{ return "bad"; } }五、break 和continue 关键字 这两个关键字可以控制循环的流程: break用于强行退出循环,不执行循环中剩余的语句。 continue停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。
public static void main(String[] args) { for(int i=0;i<100;i++){ if(i==44) break; if(i%9!=0) continue; System.out.print(i+" "); } } 结果: 0 9 18 27 36六、switch语句 它是实现多路选择的方法,但是要求选择因子必须是int或char那样的整数值。case中使用单引号引起的字符也会产生用于比较的整数值。
public static void main(String[] args) { int x=30; switch(x){ case 20:x++;System.out.println("x="+x); break; case 30:x++;System.out.println("x="+x); case 10:x++;System.out.println("x="+x); default: System.out.println("x="+x); } } //结果,继续执行后面的语句直达结尾或遇到break x=31 x=32 x=32选择因子可以是一个能够产生整数值的表达式,表达式的结果能够与每种case相比较。case的值也是能够产生整数值的表达式。
如果case是以break结尾,那可使执行流程跳转至switch主体的结尾,跳出switch语句,执行程序后面的语句。
如果没有break结尾,程序会继续执行后面的case语句,而不管是否满足条件,直到遇到一个break或 default结尾。