格式
if(布尔表达式){ 表达式为真执行的代码块; }示例
public class Test{ public static void main(String[] args){ boolean foo = true; if(foo){ System.out.print("A"); System.out.print("B"); } } }if语句关心的后面的内容是一个代码块,有截断符,这条语句就结束了,所以如果没有花括号那么只执行if语句后的一条语句。
public class Test1{ public static void main(String[] args){ boolean foo = false; if(foo) System.out.print("A"); System.out.print("B"); } }输出结果为
格式
if(布尔表达式) { //表达式的值为真,执行这里的语句 } else { //表达式的值为假,执行这里的语句 }格式
if (布尔表达式 1) { //表达式1的值为真,执行这里的代码 } else if (布尔表达式 2) { //表达式2的值为真,执行这里的代码 } else { //意识表达式都为假,执行这里的代码 }示例
public class Test1 { public static void main(String[] args){ boolean foo = false; if(foo) { System.out.print("A"); }else if(3<4) System.out.print("B"); } }执行结果
switch case语句里,switch的小括号里可以放常量,但是一般不会放,这里需要放一个变量或表达式 注意:不可以放long型,float型,double型; 格式
switch(表达式){ case 值1 : //执行的语句 break; //不必要 case 值2 : //执行的语句 break; //不必要 …… default : //执行的语句 break; //不必要 }开关类型控制存在一个问题——击穿问题(没有break它就一直向下执行,直到遇到break或者到当前语句块结束才中断) 示例
public class Test1{ public static void main(String[] args){ int a = 0; switch(a){ case 0: System.out.println("0"); case 1: System.out.println("1"); break; default: break; } } }执行结果 小练一下 知道年,月,计算这个从这个月的第一天到这年的最后一天还有多少天。
public class Test2 { public static void main(String[] args){ int y = Integer.parseInt(args[0]);//main 传参,在执行命令时可以 输入参数 输入的参数都会被当作字符串放入args中当成他的执行参数来用 int m = Integer.parseInt(args[1]); int days = 0; switch(m){ case 1: days = days + 31; case 2: if((y%4==0&&y%100!=0)||y%100==0&&y%400==0){//判断闰年 days = days + 29; }else{ days = days + 28; } case 3: days = days + 31; case 4: days = days + 30; case 5: days = days + 31; case 6: days = days + 30; case 7: days = days + 31; case 8: days = days + 31; case 9: days = days + 30; case 10: days = days + 31; case 11: days = days + 30; case 12: days = days + 31; } System.out.println(days); } }执行结果
格式
for(1.数据初始化部分 ; 2.条件判断部分 ;3.条件改变部分 ) { //循环体 }上面这是标准形式的for循环,for循环括号中的 1、2、3都可以没有,如下:
int i = 0 for(; i <= 5; ){//一直循环0 System.out.println(i); } int i = 0 for(;; ){//死循环 i++; System.out.println(i); }但是for循环里的 “;” 一个都不能少!
break: 结束当前循环,跳出循环后执行循环体后面的语句。 continue: 回归到循环体的判断条件继续执行循环。 示例
//break public class Test3 { public static void main(String[] args) { for(int i=1; i<=10;i++){ if(i == 3){ break; } System.out.println(i); } } }执行结果
//countine "逢7过"小游戏 public class Test3{ public static void main(String[] args){ for(int i = 0; i < 100;i++){ String item = i + "";//任何一个东西加上字符串都会转为字符串 boolean flag = item.contains("7"); //判断字符串是否含有7 if(flag){ continue; }else if(i%7==0){ continue; }else{ System.out.println(i); } } } }执行结果(部分)
格式
for (声明语句 : 表达式) { //循环体 }示例
public class Test4{ public static void main(String[] args){ int[] arrays = {1,2,3,4,5,6}; for(int temp : arrays){ //遍历数组 System.out.println(temp); } } }格式
while(布尔表达式){ //循环体 }** 注意**
public static void main(String[] args){ while(3>4){//编译不通过 System.out.println("A"); } } public static void main(String[] args){ int a = 3; int b = 4; while(a>b){//编译可以通过 System.out.println("A"); } }这是因为如果写成3>4,那么在循环过程中将不可能改变3或4的值,没有意义,所以编译不通过;如果写a>b,那么有可能在循环过程中改变a或b的值,还有意义,可以编译运行
知道循环次数的用for,不知道循环次数的用while