Java中的流程控制语句(选择结构)

什么是流程控制语句

所谓流程控制语句,就是控制代码执行顺序的语句,if与switch语句使程序存在选择分支,for与while语句使程序在满足某条件的情况下重复的做一件事情。在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。
也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。
流程控制语句分为三类:
顺序结构:是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。总的来说:写在前面的先执行,写在后面的后执行。
选择结构:也被称为分支结构。 选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
循环结构:循环语句用于反复执行相同的处理,不过循环过程中的每一次处理往往条件不同,处理的对象和结果也不一样。

选择结构if语句格式及其使用

1.简单if语句

if(<条件表达式>)
<语句>

其中<条件表达式>的求职结果是布尔类型的值;<语句>是一个基本语句。
简单if语句在执行时,先对<条件表达式>进行求值,如果<条件表达式>值为真则执行<语句>,否则不执行语句。
示例:

public class Test {
 
   public static void main(String args[]){
      int x = 10;
 
      if( x < 20 ){
         System.out.print("这是 if 语句");
      }
   }
}

执行结果为:这是 if 语句

2.if-else语句

语法形式如下。

if(条件表达式) {
		语句体1;
	}else {
		语句体2;
	}

其中<条件表达式>的求职结果是布尔类型的值;语句体1和语句体2均是基本语句。
简单if-else语句在执行时,先对<条件表达式>进行求值,如果<条件表达式>值为真则执行语句体1,否则执行语句体2。
示例:

public class Test {
 
   public static void main(String args[]){
      int x = 3;
 
      if( x < 2 ){
         System.out.print("这是语句1");
      }else{
         System.out.print("这是语句2");
      }
   }
}

执行结果为:这是语句2

3.复合if语句

复合if语句用于多选择的处理,即根据 不同的条件做相应的处理。从语法上看,复合if语句是if语句的嵌套。语法形式如下:

if(条件表达式1) 
		语句体1;
	else if(条件表达式2) 
		语句体2;
	
	......
	else
	语句3;
	

if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
示例:

public class Test {
   public static void main(String args[]){
      int x = 30;
 
      if( x == 10 ){
         System.out.print("语句1");
      }else if( x == 20 ){
         System.out.print("语句2");
      }else if( x == 30 ){
         System.out.print("语句3");
      }else{
         System.out.print("这是 else 语句");
      }
   }
}

执行结果为:语句3

选择结构switch语句的格式及其解释

switch语句是一个多选择语句,作用类似于复合if语句,有时可以相互代替。switch语句的语法形式如下:

switch(表达式){
		case 值1:
			语句体1;
			break;
		case 值2:
			语句体2;
			break;
		case 值3:
			语句体3;
			break;
		....
		default:	
			语句体n+1;
			break;
	}

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
示例:

public class Test {
   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';
 
      switch(grade)
      {
         case 'A' :
            System.out.println("优秀"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("良好");
            break;
         case 'D' :
            System.out.println("及格");
            break;
         case 'F' :
            System.out.println("你需要再努力努力");
            break;
         default :
            System.out.println("未知等级");
      }
      System.out.println("你的等级是 " + grade);
   }
}

以上代码编译运行结果如下:
良好
你的等级是 C

if 和 switch的区别

switch建议判断固定值的时候用。
if建议判断区间或范围的时候用,用switch能做的,用if都能做,单反过来则不行。
if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句使用场景:
针对几个常量值的判断

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值