【1基础语法】5-Java中的语句结构

​ Java中我们执行main方法中的代码的时候是有先后顺序的,之前所写的代码都从上往下一行行执行了,没有遗落,除非报错,这种执行顺序我们叫顺序结构,最简单的结构。
请添加图片描述

1 顺序结构

​ 程序从上到下一行一行的执行代码,没有判断和中转,写在前面的代码先执行,写在后面的代码后执行

2 分支结构

​ 分支结构又称为选择结构,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程,在这个结构中代码有可能执行一次,也有可能一次也不执行,在Java中分支结构的具体实现有if语句switch语句

if语句

switch语句

2.1 if语句

语法结构

if ( 关系表达式 ) {

​ // 语句体

}else{
//语法体
}
请添加图片描述

案例:

package com.bobo.ifdemo;

import java.util.Scanner;

public class IfDemo01 {
	
	/**
	 * if语句
	 *    需求:如果小明考试成绩大于90分,周末去海底世界游玩,
	 *         这样的场景我们应该怎么来实现?
	 * @param args
	 */
	public static void main(String[] args) {
		// 获取一个Scanner对象
		Scanner in = new Scanner(System.in);
		System.out.println("请输入小明的考试成绩: " );
		int score = in.nextInt();
		if (score > 90) {
			System.out.println("周末去海底世界游玩....");
		}
		System.out.println("-------------------");
	}

}

面试题:

int i = 99;
if ( i > 100); {
    System.out.println("HelloWorld");
}

这段程序有没有问题?如果有问题什么原因?如果没有问题那么输出的结果是什么?

public static void main(String[] args) {
    int i = 99;
    if ( i > 100)

        ; // 这是一行代码
    // 这是一个代码块
    {
        System.out.println("HelloWorld");
    }
}

不会报错,输出的结果是 HelloWorld

2.2 多重if-else语句

有这样一个场景:

​ 老师在批改试卷,成绩在90分以上的为优秀,成绩在80-90分之间为良好,成绩在60-80分之间的为合格,60分以下的为差,这个应该要怎么来实现?

多重if-else语句语法:

if (条件1) {
    // 代码1
}else if(条件2){
    // 代码2
}else if(条件3){
    // 代码3
}...{
    
}else{
    // 代码N
}

执行顺序:

  1. 判断条件1,结果为true或者false

  2. 如果为true,直接执行代码1,然后结束

  3. 如果为false,那么看条件2是否为true

  4. 如果为true,直接执行代码2

  5. 否则判断条件3以此类推,如果所有的 else - if语句都返回的是false,那么执行else中的代码

注意:

  1. else if 可以有0到多个
  2. else语句最多只能有一个
  3. 一般超过三个if-else推荐使用switch替换,方便效率

案例:


import java.util.Scanner;

public class IfDemo06 {

	/**
	 * 老师在批改试卷,成绩在90分以上的为优秀,
	 * 成绩在80-90分之间为良好,
	 * 成绩在60-80分之间的为合格,
	 * 60分以下的为差,
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("请输入考试成绩:" );
		int score = in.nextInt();
		String info = "";
		if (score >= 90) {
			info = "成绩优秀";
		}else if(score >=80 ){
			info = "成绩良好,继续加油";
		}else if (score >= 60) {
			info = "成绩刚好及格,努力加油";
		}else {
			info = "成绩很差,明天叫家长过来....";
		}
		System.out.println(info);

	}

}

2.3 switch语句

switch语句是根据表示的不同的值做出不同的执行的,针对特定的值来出来

语法格式:

switch(表达式){//表达式的值得类型必须是如下几种(int shor byte char String) String是**jkd7**之后支持的
    case1:
        代码1;
        break;
    case2:
        代码2:
        break;
    ....N 
        
     default:
        默认语句;
        break;
}

注意:

  1. 表达式的值得类型必须是如下几种(int shor byte char String) String是jkd7之后支持的

  2. case 后面跟常量(整型常量、字符常量…)

  3. default子句是可选的,同时default块顺序可以变动,但要注意执行顺序,通常default块放在末尾,也可以省略

  4. break语句的作用是在执行完一个case分支后是程序跳出switch语句块

import java.util.Scanner;

public class SwitchDemo01 {

	/**
	 * 模拟:拨打中国电信客户的案例
	 * 按1:办理快带业务
	 * 按2:办理手机业务
	 * 按3:办理投诉业务
	 * 按4:转人工服务
	 * 没有上面的选项: 对不起您的输入有误
	 * @param args
	 */
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.println("请输入您服务编号:");
		int num = in.nextInt();
		switch (num) {//表达式的值得类型必须是如下几种(int shor byte char String) String是**jkd7**之后支持的
			case 1://唯一,case 后面跟常量(整型常量、字符常量......System.out.println("办理快带业务");
				break;
			case 2:
				System.out.println("办理手机业务");
				break;
			case 3:
				System.out.println("办理投诉业务");
				break;
			case 4:
				System.out.println("转人工服务");
				break;
			default:
				System.out.println("对不起您的输入有误");
				break;
		}

	}

}

2.4 switch和if对比

if语句

  1. 表达式的结果是boolean类型
  2. 常用于区间的判断

switch语句

  1. 表达式的类型不能是boolean类型,可以是 byte,short,int,char和String 枚举类型
  2. 常用于等值判断

选择语句的选取

  1. 能switch语句实现的就一定能够有if语句实现,但是反之就不一定了
  2. 如果是区间范围的采用if语句,如果是等值判断的使用switch语句

2.5 经典题目

  1. 若a和b均是整型变量并已正确赋值,正确的switch语句是( )。
    A) switch(a+b); { … } B) switch( a+b*3.0 ) { … }
    C) switch a { … } D) switch ( a%b ) { … }

  2. 设int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,正确的switch语句是( )。
    A) switch (x + y) { … } B) switch ( ch + 1 ) { … }
    C) switch ch { … } D) switch ( a + b ); { … }

  3. 下列语句序列执行后,k 的值是( )。

    int x = 6, y = 10, k = 5;
    switch (x % y) {
         case 0:
               k = x * y;
         case 6:
               k = x / y;
          case 12:
               k = x - y;
           default:
               k = x * y - x;
    }
    

    A) 60 B) 5 C) 0 D) 54

  4. 下列语句序列执行后,k 的值是( )。

    int i = 10, j = 18, k = 30;
    switch (j - i) {
          case 8:
             k++;
          case 9:
             k += 2;
          case 10:
             k += 3;
          default:
             k /= j;
    }
    

    A) 31 B) 32 C) 2 D) 33

  5. 下列语句序列执行后,r 的值是( )

    char ch = '8';
    int r = 10;
    switch (ch + 1) {
          case '7':
             r = r + 3;
          case '8':
             r = r + 5;
          case '9':
             r = r + 6;
             break;
           default:
             r = r + 8;
    }
    

    A) 13 B) 15 C) 16 D) 18

  6. 下面语句运行结果为:()

    switch (5) {
        default:
            System.out.println(5);
            break;
        case 0:
        	System.out.println(0);
       	 	break;
        case 1:
        	System.out.println(1);
        	break;
       	case 2:
       		 System.out.println(2);
        	 break;
    }
    

    A) 0 B) 1 C) 2 D) 5

  7. 下面语句运行结果为:()

    switch (5) {
        default:
        	System.out.print(5);
        case 0:
        	System.out.print(0);
        case 1:
       	 	System.out.print(1);
        	break;
        case 2:
        	System.out.print(2);
        	break;
    }
    

    A) 1 B) 5 C) 0 D) 501

3 循环结构

​ 在满足循环条件的情况下,反复执行特定的代码,特定的代码有可能一次也不执行,也有可能执行了很多遍

for循环

while循环

do while 循环

3.1 for循环

for( 表达式1 ; 表达式2 ; 表达式3 ) 
{
   // 循环体语句  
}

语法格式说明:

for( 初始化语句 ; 循环条件语句 ; 控制条件语句 ) 
{
   // 循环体语句  
}
表达式说明
表达式1初始化语句,完成变量的初始化操作 初始化语句只会在第一次执行一次
表达式2循环条件语句,boolean类型,返回true进入循环体,返回false结束循环
表达式3控制条件语句,在循环体执行完成后执行的代码,负责修正变量,改变循环条件的

for循环的执行流程
请添加图片描述
课堂案例

  1. 控制台输出数据1-10

  2. 计算1到100的和,用for语句实现

/**
	 * 计算1到100的和,用for语句实现
	 * @param args
	 */
public static void main(String[] args) {
    // 在for循环之外创建一个变量 来接收我们的数据 相当于一个 容器
    int total = 0 ; // 保存计算结果
    for ( int i = 1 ; i <= 100 ; i ++) {
        total += i; // 将变量的结果累加到到total中
    }
    System.out.println(total);

}
  1. 求1~100之间不能被3整除的数的和
package com.bobo.fordemo;

public class ForDemo04 {

	/**
	 * 求1~100之间不能被3整除的数的和
	 *    1.先找到所有不能被3整除的数
	 *    2.将找到的数累加即可
	 * @param args
	 */
	public static void main(String[] args) {
		int total = 0;
		for( int i = 1 ; i <= 100 ; i ++){
			if (i % 3 != 0) {
				// 表示不能被3整除
				// System.out.println(i);
				total += i;
			}
		}
		System.out.println("1~100之间不能被3整除的数的和:" + total);
	}

}

3.2.while循环

​ while是Java使用频率也比较高的一种循环方式。while语句的语法结构要比for循环简单些

语法格式

while (条件表达式) {
    // 循环语句
}
/**
	 * while循环
	 * @param args
	 */
public static void main(String[] args) {
    int i = 0;
    while( i < 10){
        System.out.println("i = " + i);
        i ++ ;
    }

    System.out.println("循环结束...");
}

while语句的执行顺序

  1. 首先判断条件表达式结果是为true还是false
  2. 如果结果是true,执行循环体
  3. 如果结果是false,退出循环体
    请添加图片描述

课堂案例

1.用while语句去实现1到100的和

package com.bobo.whiledemo;

public class WhileDemo02 {

	/**
	 * 用while语句去实现1到100的和
	 * @param args
	 */
	public static void main(String[] args) {
		int total = 0; // 记录总和
		int i = 1; // 声明的变量
		while( i <= 100){
			total += i;
			// 改变循环条件
			i ++; // 不能漏掉,不然会 死循环
		}
		System.out.println("1到100的和是:" + total);

	}

}

2.用while语句实现1到100偶数的和


	/**
	 * 用while语句实现1到100偶数的和
	 * @param args
	 */
	public static void main(String[] args) {
		int total = 0;
		int i = 0;
		while( i <= 100){
			if( i % 2 == 0){
				// 表示循环的数字是偶数
				total += i;
			}
			i++;
		}
		
		System.out.println("1到100之间的偶数和是:" + total);
	}

    public static void main(String[] args) {
        int sum = 0;
        int i = 2;
        while(i <= 100){
            sum += i;
            i += 2; // 每次自增2
        }
        System.out.println("sum = " + sum);
    }


3.3 do while循环

​ do while循环的特点:先执行一次循环体,然后在判断条件是否成立

语法结构

do{
    循环语句;
}while ( 条件表达式 ) ;
public static void main(String[] args) {
    int i = 0 ;
    do{
        // 循环在循环条件判断之前执行一次
        System.out.println("----" + i);
    }while(i < 0);
    System.out.println("循环执行结束...");

}

执行顺序

  1. 先执行循环语句一次
  2. 然后判断条件语句的返回结果是true还是false
  3. 如果是true再执行一次循环体,然后判断条件语句
  4. 如果是false,那么直接退出循环

4 break、continue、return关键字

4.1break关键字

​ 在循环过程中我们要跳出循环的时候那么可以通过break关键字来实现,改变程序控制流。

4.2continue关键字

作用:continue关键字用于跳过某个循环语句的一次执行,下一次循环还会继续

4.3return关键字

return关键字的作用是从当前方法中退出。返回到调用该方法的语句处,并且从该语句的下一条语句处开始执行。还没有讲方法,我们会在下节课中给大家详细介绍

【上一篇】:【1基础语法】4-优先级速查表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值