我们都知道,程序是由上往下一行一行执行的,但是有些时候我们需要让他执行某些部分,不执行某部分或反复执行某部分,流程控制语句分为分支语句和循环语句。
if分支语句:
if就是如果的意思,就是在某些情况下,满足某一条件时才执行相应代码,条件不足则执行其他代码。if有四种形式:单分支,双分支,多分支,嵌套if。
比如:单分支
if(3<4){
System.out.println("输出");
}
就会打印一个"输出",if后面小括号里面是Boolean类型。
多分支:
if(布尔表达式1){
//布尔表达式1为true时执行的代码
}else if(布尔表达式2){
//布尔表达式1为false布尔表达式2为true时执行的代码
}else{
//布尔表达式1,布尔表达式2为false布尔表达式3为true时执行的代码
}
多个语句块中只执行一个语句块
嵌套if:
if(布尔表达式1){
//布尔表达式1为true时执行的代码
if(布尔表达式2){
//布尔表达式1和布尔表达式2均为true时执行的代码
}else{
//布尔表达式1为true,但布尔表达式2均为false时执行的代码
}
}else {
//布尔表达式1为false时执行的代码
}
一个分支结构中包含另一个完整分支结构,当有多个条件时分别判断多个条件提高程序可读性。
ps:if分支语句中去掉括号,对第一行代码有效。
public class IfTest {
public static void main(String[] args) {
int i=3;
if(i==2)
System.out.println("代码1");
System.out.println("代码2");
}
}
只会输出代码2。
switch分支语句:
语句格式:
switch ( 表达式 ) {
case 常量1 :
当表达式的值等于整型常量1时执行的语句;
break;//当一种情况包含其他情况时
case 常量2 :
当表达式的值等于整型常量2时执行的语句;
break;
---
default:
当表达式的值不满足任何一个case的值时,执行的语句;
}
switch变量类型只能是int,short,char,byte,当进行case判断时,jvm会从上到下扫描,寻找匹配的case。
但若是case没有break时,JVM并不会顺序输出每一个case对应的返回值,而是继续匹配,不成功则返回默认case。
public class SwitchTest {
public static void main(String[] args) {
int i=1;
switch(i){
case 1 :
System.out.println("代码1");
case 2 :
System.out.println("代码2");
break;
default :
System.out.println("代码3");
}
System.out.println("代码4");
}
}
运行结果:代码1
代码2
代码4
循环:
for循环结构:
for(表达式1;表达式2;表达式3){
循环体;
}
表达式1:参数初始化。
表达式2:条件判断。
表达式3:若表达式2为true时,执行完循环体后更新循环变量。
循环体:被执行的语句。
while循环结构:
while(布尔型循环条件){
循环代码块
}
先判断,再执行。
do-while循环结构:
do {
循环操作
} while ( 布尔型循环条件 );
特点:先执行,再判断,至少会执行一次。
使用循环结构输出九九乘法表:
public class Second{
public static void main(String []args){
for(int i=1;i<=9;i++){ //行数
for(int j=1;j<=i;j++){ //每行的个数
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
}
}