分支语句
一、if分支语句
- 概述:在某些情况下,需要当某一条件满足时才执行相应代码,条件不满足则执行其他代码。
- if的四种形式
1、单分支
if (布尔表达式) {
//布尔表达式为true时需执行的代码;
}
2、双分支
if (布尔表达式) {
//布尔表达式为true时需执行的代码;
}else {
//布尔表达式为false时需执行的代码;
}
3、多分支
—— 多个语句块中只执行一个语句块:
if(布尔表达式1){
//布尔表达式1为true时执行的代码
}else if(布尔表达式2){
//布尔表达式1为false但是布尔表达式2为true时执行的代码
}else if(布尔表达式3){
//布尔表达式1和布尔表达式2为false但是布尔表达式3为true时执行的代码
}else{
//布尔表达式1、布尔表达式2和布尔表达式3均为false时执行的代码
}
4、嵌套if
—— 一个分支结构中包含另一个完整分支结构:当有多个条件时分别判断多个条件可以提高程序可读性。
if(布尔表达式1){
//布尔表达式1为true时执行的代码
if(布尔表达式2){
//布尔表达式1和布尔表达式2均为true时执行的代码
}else{
//布尔表达式1为true,但布尔表达式2均为false时执行的代码
}
}else {
//布尔表达式1为false时执行的代码
}
注意
1、 if分支语句中去掉括号,则对第一行代码有效。
public class IfTest {
public static void main(String [] args) {
int i=3;
if(i==2)
System.out.println("代码1");//包含在if语句中
System.out.println("代码2");
}
}
//输出结果:代码2
2、 else不能单独使用。
public class IfTest {
public static void main(String[] args) {
int i=3;
if(i==2)
System.out.println("代码1");
//System.out.println("代码2");//该行代码去掉程序能编译
else
System.out.println("代码3");
}
}
//输出结果:
//1、去掉上行代码,程序编译,输出——代码3
//2、不去掉时,代码1包含在if语句中,else单独使用,出现错误
二、switch分支语句
switch语法
switch ( 表达式 ) {
case 常量1 :[{]
当表达式的值等于整型常量1时执行的语句;
break;//当一种情况包含其他情况时
[}]
case 常量2 :[{]
当表达式的值等于整型常量2时执行的语句;
break;
[}]
---
default:[{]
当表达式的值不满足任何一个case的值时,执行的语句;
[}]
}
//注意:上面的大括号可有可无
switch括号中的表达式结果类型可以是:
byte、short、int、char以及枚举类型(JDK1.7中也允许是String类型)
break
——用于结束当前switch**语句块中的**程序的执行,不影响外部程序的执行。
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");
default :
System.out.println("代码3");
}
System.out.println("代码4");
}
}
//结果:
//代码1
//代码2
//代码3
//代码4
----------
public class BreakTest {
public static void main(String[] args) {
int i=1;
switch(i){
case 1 :
System.out.println("代码1");
break;
case 2 :
System.out.println("代码2");
break;
default :
System.out.println("代码3");
}
System.out.println("代码4");
}
}
//结果:
//代码1
//代码4
----------
public class BreakTest {
public static void main(String[] args) {
int i = 1;
int k = 1;
switch (i) {
case 1:
System.out.println("代码1");
switch (k) {
case 1:
System.out.println("代码11");
break;
}
//break;
case 2:
System.out.println("代码2");
break;
default:
System.out.println("代码3");
}
System.out.println("代码4");
}
}
//break去掉——代码1,代码11,代码2,代码4
//break加上——代码1,代码11,代码4
return
- return用于结束当前方法(或者说其所在的方法)的运行。
public class ReturnTest {
static void show(){
System.out.println("show方法");
return;
}
public static void main(String[] args) {
show();
System.out.println("main方法");
}
}
//输出:show方法
//main方法
- return不能用于代码块中
public class ReturnTest {
static{
System.out.println("show方法");
return;//提示错误
}
public static void main(String[] args) {
System.out.println("main方法");
}
}
循环语句
1、for循环
- 语法:
for(表达式1;表达式2;表达式3;){
循环操作;
}
----------
for ( int i = 0 ; i < 100 ; i++ ) {
System.out.println("Hello World");
}
2、while循环
- 语法
while(布尔型循环条件){
循环代码块
}
----------
int i=0; //声明循环参数
//循环20次,每次输出20个*号
while(i < 20){ //循环条件
System.out.println("**********");
i++; //循环参数+1
}
- 特点:先判断,再执行。
3、do—while循环
- 语法
do {
循环操作
} while ( 布尔型循环条件 );
//注意while后的**分号**
- 特点:先执行,再判断,至少会执行一次。
while和do-while的区别:
1、语法不同
2、执行过程不同:如果循环条件不满足,while循环一次都不会执行;do-while循环不管任何情况都至少执行一次。
4、break、return、continue的比较
1、break
——用于结束当前循环语句块的执行,不影响外部的语句执行。
public class LoopTest {
public static void main(String[] args) {
for(int a=0;a<2;a++){
for(int i=0;i<3;i++){
if(i==1){
break;
}
System.out.println("in code 11");
}
System.out.println("in code 1");
}
System.out.println("out code");
}
}
//结果:
//in code 11
//in code 1
//in code 11
//in code 1
//out code
2、return
——用于只结束其所在的方法的执行。
public class LoopTest {
static void loop(){
for (int i = 0; i < 3; i++) {
if (i == 1) {
return;
}
System.out.println("in code");
}
}
public static void main(String[] args) {
loop();
System.out.println("out code");
}
}
//结果
//in code
//out code
3、continue
——用于结束当前循环进入下次循环
public class LoopTest {
public static void main(String[] args) {
for (int i = 0; i < 4; i++) {
if (i == 1) {
continue;
}
System.out.println("in code"+i);
}
System.out.println("out code");
}
}
//结果
//in code0
//in code2
//in code3
//out code
4、break、return、continue在if语句中的使用
public class Test {
public static void main(String[] args) {
for(int i=0;i<4;i++){
if(i==1){
break;
}
System.out.println(i);
}
System.out.println("out");
}
}
}
//结果:
//0
//out
//如果break换为return,输出——0
//如果break换为continue,输出——0,2,3,out
public class Test {
public static void main(String[] args) {
if(1==1){
return;//此处不能使用continue和break
}
}
}
总结
1、break可以用在if分支语句中,但必须置于switch或循环语句中。
2、return可以单独在if分支语句中使用
3、continue可以用在if分支语句中,但必须置于循环语句中,不能在switch里面使用