Java基础语法(二)----运算符和流程控制语句 (之 流控制语句)

二、流程控制语句

1、 什么是流程控制语句
    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能


2、 流程控制语句的分类
     顺序结构、选择结构、循环结构


3、 顺序结构
   是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。总的来说:写在前面的先执行,写在后面的后执行
   执行流程:从上往下,依次执行。

4、选择结构

   选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

   # if语句:也被称为分支结构。

   ## if语句的三种格式

   格式1:if(比较表达式或者是boolean类型的值) {
              语句体;
           }

  注意事项:

         a:比较表达式无论简单还是复杂,结果必须是boolean类型

         b:if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
         c:一般来说:有左大括号就没有分号,有分号就没有左大括号


   执行流程:
          先计算比较表达式的值,看其返回值是true还是false。
          如果是true,就执行语句体;
          如果是false,就不执行语句体;





   格式2:if(比较表达式) {
                          语句体1;
                   }else {
                          语句体2;
                   }


  注意事项:else后面是没有比较表达式的,只有if后面有。


  执行流程:
                首先计算比较表达式的值,看其返回值是true还是false。
                如果是true,就执行语句体1;
                如果是false,就执行语句体2;



   格式3:if(比较表达式1) {
              语句体1;
          }else if(比较表达式2) {
              语句体2;
          }else if(比较表达式3) {
              语句体3;
          }
          ...
         else {
             语句体n+1;
         }


 执行流程:
         首先计算比较表达式1看其返回值是true还是false,
         如果是true,就执行语句体1,if语句结束。
         如果是false,接着计算比较表达式2看其返回值是true还是false,
         如果是true,就执行语句体2,if语句结束。
         如果是false,接着计算比较表达式3看其返回值是true还是false,
         ...
  
         如果都是false,就执行语句体n+1。
 
 注意事项: 当只要有一个条件满足时,if语句结束。else是可以省略,但是不建议省略。





## 案例演示
   //需求:键盘录入一个成绩,判断并输出成绩的等级。
   

   /*  90-100    A等。

       80-89     B等。

       70-79     C等。

       60-69     D等。

       60以下    E等。*/


import java.util.Scanner; 
public class text2 {

	public static void main(String[] args) {
		System.out.println("please input the score:");
		Scanner sc=new Scanner(System.in);
		float score=sc.nextFloat();
		if(90<=score&&score<=100){
			System.out.println("A等");
		}else if(80<=score&&score<90){
			System.out.println("B等");
		}else if(80<=score&&score<90){
			System.out.println("B等");
		}else if(70<=score&&score<80){
			System.out.println("C等");
		}else if(60<=score&&score<70){
			System.out.println("D等");
		}else if(0<=score&&score<60){
			System.out.println("E等");
		}else{
			System.out.println("输入的成绩不合法,请重新输入");
		}

	}

}



# switch语句


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

(2) switch语句的格式解释
   a: switch表示这是switch语句
      表达式的取值:byte,short,int,char
      JDK5以后可以是枚举(什么是枚举,以后再讲)
      JDK7以后可以是String
   b: case后面跟的是要和表达式进行比较的值
   c: 语句体部分可以是一条或多条语句
   d: break表示中断,结束的意思,可以结束switch语句
   e: default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似


(3)switch语句注意事项

  a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同

  b:default可以省略吗?

     可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
  c:break可以省略吗?
     可以省略,但是结果可能不是我们想要的。会出现一个现象:case穿透。 最终我们建议不要省略
  d:default一定要在最后吗?
     不是,可以在任意位置。但是建议在最后。
  e:switch语句的结束条件
   * 遇到break就结束了
   * 执行到末尾就结束了


(4)案例演示

   //需求:键盘录入一个成绩,判断并输出成绩的等级。
   

   /*  90-100    A等。

       80-89     B等。

       70-79     C等。

       60-69     D等。

       60以下    E等。*/



程序源代码:

import java.util.Scanner; 
public class text2 {

	public static void main(String[] args) {
		System.out.println("please input the score:");
		Scanner sc=new Scanner(System.in);
		float score=sc.nextFloat();
		int temp=(int)(score/10);
		switch(temp){
		case 10:
		case 9:
			System.out.println("A等");
			break;
		case 8:
			System.out.println("B等");
			break;
		case 7:
			System.out.println("C等");
			break;
		case 6:
			System.out.println("D等");
			break;
		case 5:
		case 4:
		case 3:
		case 2:
		case 1:
		case 0:
			System.out.println("E等");
			break;
		default:
			System.out.println("输入的成绩不合法,请重新输入");
			break;
		}

	}

}


# 在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?

if语句使用场景:

        针对结果是boolean类型的判断

        针对一个范围的判断

        针对几个常量值的判断

switch语句使用场景:

        针对几个常量值的判断


5、循环语句


#  什么是循环结构
    循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环


#  循环结构的分类
     for循环
     while循环


#  for循环

(1)循环结构for语句的格式:
     for(初始化表达式语句;判断条件语句;控制条件语句) {
          循环体语句;
     }
(2)执行流程:
   a:执行初始化表达式语句
   b:执行判断条件语句,看其返回值是true还是false
     如果是true,就继续执行
     如果是false,就结束循环
   c:执行循环体语句;
   d:执行控制条件语句
   e:回到B继续。 
(3)注意事项:
     初始化表达式语句只执行一次

#  while循环


(1)循环结构while语句的格式:
     while(判断条件语句) {
         循环体语句;
     }
  完整格式:
     初始化条件语句;
     while(判断条件语句) {
         循环体语句;
         控制条件语句;
     }

(2)执行流程:
  a: 执行初始化条件语句;
  b: 执行判断条件语句,看其返回值是true还是false
     如果是true,就继续执行
     如果是false,就结束循环
  c: 执行循环体语句;
  d: 执行控制条件语句
  e: 回到b继续。


#  do while循环

(1) 循环结构do...while语句的格式:
                   do {
                          循环体语句;
                   }while(判断条件语句);
  
        完整格式;
                   初始化条件语句;
                   do {
                         循环体语句;
                         控制条件语句;
                   }while(判断条件语句);
 (2)执行流程:
      a: 执行初始化条件语句;
      b: 执行循环体语句;
      c: 执行控制条件语句;
      d: 执行判断条件语句,看其返回值是true还是false
          如果是true,就继续执行
          如果是false,就结束循环
      e: 回到b继续。
 

# 三种循环语句的区别:  do...while循环至少执行一次循环体。而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。



6、控制跳转语句


# 什么是控制跳转语句
   前面我们已经说过了,Java中的goto是保留字,目前不能使用。虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环执行到某一步的时候就结束,现在就做不了这件事情。为了弥补这个缺陷,Java就提供了break,continue和return来实现控制语句的跳转和中断。
# 控制跳转语句的分类
     break 中断
     continue 继续
     return 返回 

# break语句

 (1)break的使用场景
      在选择结构switch语句中
      在循环语句中
  注意:离开使用场景的存在是没有意义的

(2)作用
  a: 退出单层循环
  b: 退出多层循环(几乎不使用)
     要想实现这个效果,就必须知道一个东西;带标签的语句;
     格式:标签名:语句


# continue语句

(1)continue的使用场景
  a: 在循环语句中
  b: 离开使用场景的存在是没有意义的
(2)作用
  a: 跳出一次循环,执行下一步操作


# return语句

  return的作用:
        return 就是退出一个方法。
        跳转到上层调用的方法。这个在方法的使用那里会在详细的讲解


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值