if语句
if结构
格式1:if(关系表达式)
{ 语句体 }
执行流程:1.先判断关系表达式;
2.如果关系表达式符合要求,那么就执行语句体;
3. 如果不符合要求,那么不执行语句体;
4. 执行后面的其他代码;
public class First { public static void main(String [] args) { int a=1; int b=2; if(a+b==3) //先判断a+b是否等于3 { //如果a+b等于3的话,执行if语句体里的语句块 System.out.println("先执行if语句的内容"); } System.out.println("然后执行if语句块外面的内容"); if(a+b==4) //先判断a+b是否等于4 { //因为a+b的值不等于4,所以下下面这个语句块不会执行 System.out.println("这是不满足条件的if语句块"); } } }
下图是上面代码的输出内容:
if,else结构
格式2:if(关系表达式)
{ 语句体 1 }
else
{ 语句体2 }
执行流程:1.先判断关系表达式;
2.如果关系表达式符合要求,那么就执行语句体1;
3. 如果不符合要求,那么执行语句体2;
4.然后再继续执行其他代码;
public class First { public static void main(String [] args) { int a=1; int b=2; if(a+b==3) //先判断a+b是否等于3 { //如果a+b等于3的话,执行if语句体里的语句块1 System.out.println("执行语句体1的内容"); } else { //因为语句体1符合要求,所以语句体2就不会继续执行了 System.out.println("执行语句体2的内容"); } //继续往下执行 System.out.println("然后执行if语句块外面的内容"); if(a+b==4) //先判断a+b是否等于4 { //因为a+b的值不等于4,所以下面这个语句块3不会执行 System.out.println("执行语句体3的内容"); } else { //因为语句体3不符合要求,所以会执行语句体4 System.out.println("执行语句体4的内容"); } } }
下面是上面代码的输出内容:
if,else if,else结构
格式3:if(关系表达式1)
{ 语句体 1 }
else if(关系表达式2)
{ 语句体2 }
else
{ 语句体3 }
执行流程:1.先判断关系表达式1;
2.如果关系表达式1符合要求,那么就执行语句体1;
3.如果不符合要求,那么继续判断关系表达式2是否符合要求
如果符合要求,执行语句体2;
4.如果关系表达式1,2都不符合要求,那么执行和关系表达式3;
5.然后继续执行;
public class First { public static void main(String [] args) { int a=1; int b=2; if(a+b==3) //先判断a+b是否等于3 { //如果a+b等于3的话,执行语句体1的内容 System.out.println("执行语句体1的内容"); } //如果上面的a+b==3不符合要求,那么判断a+b==4是否符合要求 else if(a+b==4) { //如果上面的a+b==4符合要求,那么执行语句体2的内容 System.out.println("执行语句体2的内容"); } else { //如果a+b==3,a+b==4都不符合要求,那么执行语句体3的内容 System.out.println("执行语句体3的内容"); } //继续往下执行 System.out.println("然后执行if语句块外面的内容"); } }
因为语句体1就已经符合要求了,所以输出结果只有语句体1的内容,语句体2,3的内容就不会执行啦,下面是输出结果:
switch语句
格式:switch(表达式)
{case 常量a :
语句体1;
break;
case 常量b :
语句体2;
break;
............
default:
语句体n ;
break;
}
case:翻译为“案例,情况”。
常量a,b:这里的常量可以是我们在控制台输入的值(或字母等),这里就可以用到Scanner数据输入了。
break:表示中断,结束的意思,用来结束switch语句。如果不加break的话,那么程序不知道你要结束这个程序,会把本行下面的语句一起执行了,直到出现break为止,我们下面会给出图片。所以,切记要加break。
default:v用于表示所有情况不匹配时,执行语句体n
下面我们来通过代码来进行学习:
import java.util.*; public class First { public static void main(String [] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入月份:"); int month = sc.nextInt(); switch(month) { //当我们在控制台输入case后面的值,会出现对应的输出语句 case 3:System.out.println("春季");break; case 4:System.out.println("春季");break; case 5:System.out.println("春季");break; case 6:System.out.println("夏季");break; case 7:System.out.println("夏季");break; case 8:System.out.println("夏季");break; case 9:System.out.println("秋季");break; case 10:System.out.println("秋季");break; case 11:System.out.println("秋季");break; case 12:System.out.println("冬季"); break; case 1:System.out.println("冬季");break; case 2:System.out.println("冬季");break; default:System.out.println("输入不正确!") ; break; } } }
下面我们在控制台输入3,回车后会出现下面结果:
当然输入其他的也会出现对应的结果。
下面是如果我们在case11以后,都没有加break控制台的输出结果:
就像这样系统只知道你没有终止,他会继续往下执行
如果我们在case11,case12,case1没加break,在case2加了break会出现下面的结果:
所以,当我们用switch语句时,切记要加break。
case穿透
现在我们看上面的代码,感觉很麻烦,有的虽然输入的值不一样,但是输出是一样的,这时候,为了简化我们的代码,我们可以使用case穿透。具体代码如下:
import java.util.*; public class First { public static void main(String [] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入月份:"); int month = sc.nextInt(); switch(month) { //当我们在控制台输入case后面的值,会出现对应的输出语句 case 3: case 4: case 5:System.out.println("春季");break; case 6: case 7: case 8:System.out.println("夏季");break; case 9: case 10: case 11:System.out.println("秋季");break; case 12: case 1: case 2:System.out.println("冬季");break; default:System.out.println("输入不正确!") ; } }
这样代码不就更加简洁了嘛 !
本篇内容就到这里啦,感谢观看。