条件执行
没有了条件执行那么我们的程序都是由上而下执行的if使用if我们可以进行一些判断,当满足特定的条件时紧跟if的代码块将会执行
inta=4;
if(a%2==){
System.out.print("in")
}
//if(a % 2 == 0) System.out.print("in"); 与上面效果相同
//不带{}的情况会默认执行后面的第一条语句,应该避免使用这种形式if/else使用if/else的语法可以让我们在不满足条件的情况下指定执行的语句
inta=4;
if(a%2==){
System.out.print("in")
}else{
System.out.print("else in")//不满足则执行
}if/else if/else该语法让我们可以定义多个条件与上面相同,区别在于可以定义多个满足的条件
inta=4;
if(a%2==){
System.out.print("double in")
}elseif(a%3==){
System.out.print("single in")
}else{
System.out.print("else in")//不满足则执行
}三元运算符三元运算符是一种特殊的语法,类似于if/else
inta=4;
a%2==?System.out.print("in") :System.out.print("else in")//参考if/elseswitchswitch可以通过不同的值来选择执行不同的分支需要注意每个case后记得break不然会执行多个分支
switch(i){
case1:
System.out.println(1);
break;
case2:
System.out.println(2);
break;
case10:
System.out.println(10);
break;
default:
System.out.println("lol");
}
//i是10的话输出10 1,2,10意外的数字输出lolswitch中的表达式的值可以是补充:包括以下的包装类型
byte,short,int,char
枚举 (jdk1.5支持)
String (jdk1.7支持)
实现原理
程序最终都是一条一条执行的指令,这些指令会修改指令指示器的值,让cpu跳到一个指定的地方执行有条件跳转和无条件跳转,条件跳转是检查某个条件满足则跳转,无条件跳转则是直接进行跳转switch的转换可能不一样,当分支少的情况下可能会转化为跳转指令,如果分支比较多,是同条件跳转的效率就会低,可能会使用跳转表这种效率高的方式效率高的原因是其中的值必须为整数且按大小顺序排序,这样就可以使用二分法来查找,如果值是连续的还会特殊化处理,转化为一组连续的数组,这样值就为数组的下标代码块地址就为内容。case的值不要求按顺序排列程序会自动进行排列
循环
循环可以使我们重复的执行某一代码块,以达到统计等目的循环主要有
for循环
while
do/while
for each
for
for(inti=;i
System.out.println(i);
}
//会打印 0 - 10除了中间的条件必须存在外变量定义和自增都可以在其他地方完成,但是必须写分号都为空那么就是一个死循环whilewhile会先进行条件判定,如果条件为true则进行循环,false则不进行循环do/whiledo/while会先执行代码块然后再进行判断和循环for eachfor each 是普通for循环的加强版,如果不需要使用索引的情况下就可以使用for each另外 两个关键字
break 跳出离它最近的循环,循环会结束
continue 放弃本次循环,循环不会结束
领取专属 10元无门槛券
私享最新 技术干货