首页 > 其他分享 >第四章 流程控制语句

第四章 流程控制语句

时间:2023-07-20 22:00:21浏览次数:32  
标签:语句 Scanner 流程 System 循环 println public 第四章 out

1.分支结构

1.1 分支结构的概念

  • 当需要进行条件判断并做出选择时,使用分支结构。

1.2 if分支结构

  • if语句格式

    if(条件表达式) {
        语句块;
    }
    

  • 判断条件表达式是否成立

    ​ => 若成立,则执行语句块;

    ​ => 若不成立,则跳过语句块;

/*
     编程使用if分支结构模拟网吧上网的过程
 */

import java.util.Scanner; 
 
public class IfTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入年龄信息并使用变量记录
		System.out.println("请输入您的年龄:");
		Scanner sc = new Scanner(System.in);
		int age = sc.nextInt();
		
		// 2.使用if分支结构判断是否成年并给出对应的提示
		if(age >= 18) {
			System.out.println("开心的浏览起了网页...");
		}
		
		// 3.打印一句话
		System.out.println("美好的时光总是短暂的!");
	}
}

案例题目:if分支结构查找最大值

  • 提示用户输入两个整数,使用if分支结构找到最大值并打印出来。
/*
    编程使用if分支结构查找两个整数中的最大值
 */

import java.util.Scanner; 
 
public class IfMaxTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入两个整数并使用变量记录
		System.out.println("请输入两个整数:");
		Scanner sc = new Scanner(System.in);
		int ia = sc.nextInt();
		int ib = sc.nextInt();
		
		// 2.使用if分支结构找到最大值并打印
		// 方式一:使用两个if分支结构可以找到最大值
		/*
		if(ia >= ib) {
			System.out.println("最大值是:" + ia);
		}
		if(ia < ib) {
			System.out.println("最大值是:" + ib);
		}
		*/
		// 方式二:假设第一个数为最大值并记录  推荐方式  通用性
		int max = ia;
		if(ib > max) {
			max = ib;
		}
		System.out.println("最大值是:" + max);
	}
}

1.3 if else分支结构

  • if else语句格式

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

  • 判断条件表达式是否成立

    ​ => 若成立,则执行语句块1;

    ​ => 若不成立,则执行语句块2;

/*
    编程使用if else分支结构来模拟考试成绩查询的过程
 */

import java.util.Scanner; 
 
public class IfElseTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入考试成绩并使用变量记录
		System.out.println("请输入您的考试成绩:");
		Scanner sc = new Scanner(System.in);
		int score = sc.nextInt();
		
		// 2.使用if else分支结构判断考试成绩是否及格并给出对应的提示
		if(score >= 60) {
			System.out.println("恭喜您考试通过了!");
		} else {
			System.out.println("下学期来补考吧!");
		}
		
		// 3.打印一句话
		System.out.println("世界上最遥远的距离不是生与死而是你在if我在else,似乎一直相伴却又永远分离!");
	}
}

案例题目:if else分支结构判断负数和非负数判断负数和非负数

  • 提示用户输入一个整数,使用if else分支结构判断该整数是负数还是非负数并打印。
  • 使用if else分支结构判断该整数是正数、负数还是零。
/*
    编程使用if else分支结构判断是否为负数和非负数
 */

import java.util.Scanner; 
 
public class IfElseJudgeTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入一个整数并使用变量记录
		System.out.println("请输入一个整数:");
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		
		// 2.使用if else分支结构判断负数和非负数并打印
		if(num < 0) {
			System.out.println(num + "是负数!");
		} else {
			//System.out.println(num + "是非负数!");
			// 针对目前的非负数再次判断是正数还是零
			if(num > 0) {
				System.out.println(num + "是正数!");
			} else {
				System.out.println(num + "是零!");
			}
		}
	}
}

1.4 if else if else分支结构

  • if else if else语句格式

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

  • 判断条件表达式1是否成立

    ​ => 若成立,则执行语句块1;

    ​ => 若不成立,则判断条件表达式2是否成立

    ​ => 若成立,则执行语句块2;

    ​ => 若不成立,则执行语句块n;

/*
    编程实现if  else if  else分支结构的使用,来模拟购买火车票的过程
 */

import java.util.Scanner; 
 
public class IfElseifElseTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入身份信息并使用变量记录
		System.out.println("请输入您的身份信息:");
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		
		// 2.使用if  else if  else分支结构判断身份信息并给出对应的提示
		// 判断"军人"是否等于str,是否与str的数值相等
		if("军人".equals(str)) {
			System.out.println("请免费乘车!");
		} else if("学生".equals(str)) {
			System.out.println("请购买半价票!");
		} else {
			System.out.println("请购买全价票!");
		}
		
		// 3.打印一句话
		System.out.println("坐上了火车去拉萨,去看那美丽的布达拉!");
	}
}

案例题目1:个人所得税的计算方式

  • 根据用户输入的薪水计算个人所得税并打印出来,其中个税起征点为:5000元,具体规则如下:

/*
    编程使用if else if else分支结构来计算个人所得税
 */

import java.util.Scanner; 
 
public class IfSalaryTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入个人的薪水并使用变量记录
		System.out.println("请输入您的薪水:");
		Scanner sc = new Scanner(System.in);
		// 局部变量:作用范围是从声明开始一直方法体结束
		int salary = sc.nextInt();
		
		// 2.使用if else if else分支结构判断薪水所在的范围并计算对应的个人所得税
		// 个人所得税公式: 本月应纳税所得额 * 对应的税率 - 速算扣除数
		double salaryPrice = 0.0;
		if(salary <= 5000) {
			System.out.println("无需纳税!");
		}
		else if(salary <= 8000) {
			// 块变量:作用范围是从声明开始一直到当前语句块结束
			//double salaryPrice = (salary - 5000) * 0.03;
			//salaryPrice = (salary - 5000) * 0.03;
			salaryPrice = (salary - 5000) * 0.03 - 0;
		}
		else if(salary <= 17000) {
			//salaryPrice = (salary - 8000) * 0.1 + (8000 - 5000) * 0.03;
			salaryPrice = (salary - 5000) * 0.1 - 210;
		}
		else if(salary <= 30000) {
			//salaryPrice = (salary - 17000) * 0.2 + (17000 - 8000) * 0.1 + (8000 - 5000) * 0.03;
			salaryPrice = (salary - 5000) * 0.2 - 1410;
		}
		// ...
		
		// 3.打印最终的计算结果
		System.out.println("最终的个人所得税是:" + salaryPrice);
	}
}

案例题目2:出租车计费系统的实现

  • 出租车计费方式:由里程钱数和等候时间钱数相加得出。
  • 里程数前3公里13元,超过3公里到15公里部分每公里2元,15公里以上部分每公里3元。
  • 等候时间每2分半1元,不足部分不要钱。
  • 输入公里数和等候秒数,输出车费。
  • 16公里,等候290秒,车费= 13 +(15-3)2 + (16-15)3 + 1 = 41
/*
    编程使用if分支结构实现出租车计费系统的实现
 */

import java.util.Scanner; 
 
public class IfTaxiTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入公里数和等待的秒数并使用变量记录
		System.out.println("请输入公里数和等待的秒数:");
		Scanner sc = new Scanner(System.in);
		int km = sc.nextInt();
		int sec = sc.nextInt();
		
		// 2.根据公里数计算对应的里程费并使用变量记录
		int kmPrice = 0;
		if(km <= 3) {
			kmPrice = 13;
		} else if(km <= 15) {
			kmPrice = 13 + (km - 3) * 2;
		} else {
			kmPrice = 13 + (15 - 3) * 2 + (km - 15) * 3;
		}
		
		// 3.根据等待的秒数来计算对应的等待费并使用变量记录
		int secPrice = sec / 150;
		
		// 4.计算总费用并打印
		int sumPrice = kmPrice + secPrice;
		System.out.println("本次出租车的总费用是:" + sumPrice);
	}
}

案例题目3:if分支结构实现等级判断

  • 提示用户输入考试的成绩,使用if-else if-else分支结构判断所在等级并打印。
  • [90 ~ 100] 等级A
  • [80 ~ 89] 等级B
  • [70 ~ 79] 等级C
  • [60 ~ 69] 等级D
  • [0 ~ 59] 等级E
/*
    编程使用if else if else分支结构判断考试成绩所在的等级
 */

import java.util.Scanner; 
 
public class IfScoreTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入考试成绩并使用变量记录
		System.out.println("请输入您的考试成绩:");
		Scanner sc = new Scanner(System.in);
		int score = sc.nextInt();
		
		// 2.使用if else if else分支结构判断所在的等级并打印
		// 90 / 10 = 9;    91 / 10 = 9;  92 / 10 = 9;  99 / 10 = 9;   100 / 10 = 10;
		if(score >= 90 && score <= 100) {     // case 9:    case 10:  
			System.out.println("等级A");
		} else if(score >= 80) {              // case 8: 
			System.out.println("等级B");
		} else if(score >= 70) {              // case 7:
			System.out.println("等级C");
		} else if(score >= 60) {              // case 6:
			System.out.println("等级D");   
		} else {                              // default:
			System.out.println("等级E");
		}
	}
}

1.5 switch case分支结构

  • switch case语句格式

    switch(变量/表达式) {
        case 字面值1: 语句块1; break;
        case 字面值2: 语句块2; break;
        ...
        default:语句块n;
    }
    
    

  • 计算变量/表达式的数值=> 判断是否匹配字面值1

    ​ => 若匹配,则执行语句块1 => 执行break跳出当前结构

    ​ => 若不匹配,则判断是否匹配字面值2

    ​ => 若匹配,则执行语句块2 => 执行break跳出当前结构

    ​ => 若不匹配,则执行语句块n

  • switch()中支持的数据类型有:byte、short、char以及int类型,从jdk1.5开始支持枚举类型,从jdk1.7开始支持String类型。

/*
    编程使用switch case分支结构实现考试成绩的等级判断
 */

import java.util.Scanner; 
 
public class SwitchScoreTest {
	
	public static void main(String[] args) {
		
		// 1.提示用户输入考试成绩并使用变量记录  0 ~ 100
		System.out.println("请输入您的考试成绩:");
		Scanner sc = new Scanner(System.in);
		int score = sc.nextInt();
		
		// 2.使用switch case分支结构实现考试成绩的等级判断
		switch(score / 10) {
			case 10: //System.out.println("等级A"); //break;
			case 9:  System.out.println("等级A"); break; // case穿透  
			case 8:  System.out.println("等级B"); break;
			case 7:  System.out.println("等级C"); break;
			case 6:  System.out.println("等级D"); break;
			default: System.out.println("等级E"); //break;
		}
		
		// 3.打印一句话
		System.out.println("世界上最痴情的等待就是我当case你当switch,或许永远都不会选到自己!");
	}
}

案例题目:switch case分支结构实现字符界面

  • 使用switch case分支结构模拟以下菜单效果。

/*
    编程使用switch case分支结构来模拟菜单的效果
 */

import java.util.Scanner; 
 
public class SwitchMenuTest {
	
	public static void main(String[] args) {
		
		// 1.绘制字符界面
		System.out.println("         欢迎来到拉勾教育");
		System.out.println("-------------------------------------");
		System.out.print(" [1]学员系统     ");
		System.out.println("[2]管理员系统");
		System.out.println(" [0]退出系统");
		System.out.println("-------------------------------------");
		System.out.println("请选择要进入的系统:");
		Scanner sc = new Scanner(System.in);
		int choose = sc.nextInt();
		
		// 2.使用switch case分支结构来模拟用户的选择并给出提示
		switch(choose) {
			case 1: System.out.println("正在进入学员系统..."); break;
			case 2: System.out.println("正在进入管理员系统..."); break;
			case 0: System.out.println("谢谢使用,下次再见!"); break;
			default: System.out.println("输入错误,请重新选择!");
		}
	}
}

2.循环结构

2.1 循环结构的概念

  • 在Java程序中若希望重复执行一段代码时,就需要使用循环结构。
  • 任何复杂的程序逻辑都可以通过顺序、分支、循环三种程序结构实现。

2.2 for循环

  • for循环语句格式

    for(初始化表达式; 条件表达式; 修改初始值表达式) {
        循环体;
    }
    
    

  • 执行初始化表达式=> 判断条件表达式是否成立

    ​ => 成立则执行循环体=> 修改初始值表达式=> 判断条件是否成立

    ​ => 若不成立,则循环结束

/*
    编程实现for循环的使用,模拟玩游戏的过程
 */
public class ForTest {
	
	public static void main(String[] args) throws Exception {
		
		for(int i = 1; i <= 10; i++) { // i = i + 1  => i += 1  => i++
			System.out.println("今晚吃鸡,大吉大利,正在进行第" + i + "场游戏...");
			Thread.sleep(5000); // 表示模拟睡眠5秒的效果
			System.out.println("本场游戏结束!\n\n\n");
		}
		
		System.out.println("该休息了,否则明天早上就要迟到了!");
	}
}

案例题目1:for循环打印奇数

  • 使用for循环打印1-100的所有奇数,使用三种方式。
/*
    编程使用for循环实现1 ~ 100之间所有奇数的打印
 */
public class ForNumTest {
	
	public static void main(String[] args) {
		
		// 1.使用for循环打印1 ~ 100之间的所有奇数
		// 方式一:根据奇数的概念进行打印
		for(int i = 1; i <= 100; i++) {
			// 若当前i的数值是奇数时则打印,否则不打印   奇数就是不能被2整除的数,也就是对2取余的结果不为0
			if(i % 2 != 0) {
			    System.out.println("i = " + i);
			}
		}
		
		System.out.println("---------------------------------------------------");
		// 方式二:根据等差数列的概念来打印  每两个数据之间相差2
		for(int i = 1; i <= 100; i += 2) {
			System.out.println("i = " + i);
		}
		
		System.out.println("---------------------------------------------------");
		// 方式三:根据通项公式的规则来打印  2*i-1
		for(int i = 1; i <= 50; i++) {
			System.out.println("i = " + (2 * i - 1));
		}
	}
}

案例题目2:for循环实现累加和

  • 使用for循环实现累加:1+2+...+10000=?最后打印出来。
/*
    编程使用for循环实现1 ~ 10000之间所有整数的累加和
 */
public class ForSumTest {
	
	public static void main(String[] args) {
		
		// 2.声明一个变量负责记录累加的结果
		int sum = 0;
		
		// 1.使用for循环打印1 ~ 10000之间的所有整数
		for(int i = 1; i <= 10000; i++) {
			// 打印后不换行
			//System.out.print(i + " ");
			// 将所有i的取值都累加到变量sum中
			sum += i; // sum = sum + i;
		}
		// 专门用于换行
		//System.out.println();
		
		// 3.打印最终的累加结果
		System.out.println("sum = " + sum);
	}
}

案例题目3:for循环实现水仙花数的打印

  • 使用for循环打印三位数中所有水仙花数。

    所谓“水仙花数”即一个整数满足其值等于各个数位的立方和。

    如:153是一个水仙花数,因为153=13+53+3^3。

/*
    编程使用for循环打印三位数中的所有水仙花数
 */
public class ForWaterTest {
	
	public static void main(String[] args) {
	
		// 1.使用for循环打印所有的三位数
		for(int i = 100; i <= 999; i++) {
			
			// 3.拆分三位数中的各个数位上的数字
			// 123 / 100 = 1;        123 % 100 => 23 / 10 = 2;    123 % 10 = 3;
			int ia = i / 100;      // 拆分百位数
			int ib = i % 100 / 10; // 拆分十位数
			int ic = i % 10;       // 拆分个位数
			
			// 2.针对每个三位数都要判断该数是否为水仙花数,若是则打印,否则不打印
			// 判断该数是否等于各个数位的立方和
			if((ia*ia*ia + ib*ib*ib + ic*ic*ic) == i) {
				System.out.println("i = " + i);
			}
		}
	}
}

2.3 continue关键字

  • continue语句用在循环体中,用于结束本次循环而开始下一次循环。

案例题目:for循环打印1 ~ 20之间的所有整数

  • 使用for循环打印1 ~ 20之间的所有整数,若遇到5的倍数则跳过不打印。
/*
    编程实现continue关键字的使用
 */
public class ForContinueTest {
	
	public static void main(String[] args) {
		
		// 1.使用for循环打印1 ~ 20之间的所有整数
		for(int i = 1; i <= 20; i++) {
			// 若遇到5的倍数则跳过不打印该数,转而继续打印下一个数
			if(0 == i % 5) {
				continue; // 表示提前结束本次循环,继续下一次循环,也就是奔向了i++
			}
			System.out.println("i = " + i);
		}
	}
}

2.4 break关键字

相关文章

  • 动态mysql语句
    动态MySQL语句的使用及示例引言在开发过程中,我们经常需要根据不同的条件来构建不同的SQL查询语句。这就需要我们掌握动态MySQL语句的使用方法。动态MySQL语句可以根据不同的情况动态地生成和执行SQL语句,使我们能够灵活地操作数据库。什么是动态MySQL语句动态MySQL语句是指在程......
  • 将其他sql语句转换为mysql
    将其他SQL语句转换为MySQL在日常的数据库开发中,我们经常会遇到需要将其他数据库系统的SQL语句转换为MySQL语句的情况。虽然大部分SQL语句在不同的数据库系统中都有相似的语法,但仍然存在一些差异和特定的函数或关键字。本文将简要介绍如何将其他数据库系统的SQL语句转换......
  • 进入流程化管理,就让低代码产品公司加油助力!
    企业想要进入流程化管理,将内部数据有效贯通起来,发挥应有的价值,可以与低代码产品公司强强联手,共同打造专属的快速框架,实现提质增效的目的。在社会高度发展的今天,企业的数据信息越来越多,业务量也越来越繁茂,如果还停留在传统的开发模式上,就无法实现高效发展,而应用低代码开发平台明显......
  • NodeJS 控制语句
    二、控制语句目录二、控制语句2.1语句块2.2流程控制2.2.1条件分支2.2.2switch-case分支语句2.2.3for循环2.2.4while循环2.2.5do-while循环2.2.6for-in循环&for-of2.2.7break&continue2.1语句块JS使用大括号构成语句块,let只能在块作用域内可见functionfn(){......
  • 1-23 编写一个删除 C 语言程序中所有的注释语句
    ArchlinuxGCC13.1.1 202304292023-07-2013:34:31星期四 点击查看代码#include<stdio.h>#defineTRUE1#defineFALSE0intmain(){inti,j,sign;chartmp[100]="";FILE*fp;FILE*fp_store;//另创建文件,保存修改i=j=0......
  • java字符串update sql语句实现逗号隔开多个修改
    实现Java字符串UpdateSQL语句实现逗号隔开多个修改作为一名经验丰富的开发者,我将教你如何使用Java字符串拼接和SQL语句来实现逗号隔开多个修改。首先,我将给你整个流程的概览,然后逐步教你每一步需要做什么,并提供相应的代码和注释。整体流程概览以下是实现此功能的大致流程:步......
  • mysql 插入语句
    MySQL插入语句MySQL是一种流行的开源关系型数据库管理系统,被广泛应用于各种应用程序和网站中。在使用MySQL时,插入语句是常用的操作之一,用于将数据添加到表中。本文将介绍MySQL中的插入语句的基本语法和使用示例,并提供一些实用的技巧和建议。基本语法MySQL中的插入语句使......
  • mysql查询建表语句 sql
    MySQL查询建表语句的实现流程概述在MySQL中,建表语句是用来定义和创建数据库中的表的语句。通过使用合适的建表语句,我们可以指定表的结构,包括列名、数据类型、主键、外键等。下面将介绍如何通过SQL语句实现MySQL的查询建表操作。查询建表语句实现步骤以下是实现MySQL查询建表语......
  • Mybatis中IN语句查询、Mybatis中的foreach用法
    1需求查询用户ID为101、102、103的数据,参数是一个集合2在SQL语句中select*fromt_userwhereuser_idin('101','102','103')13在Mybatis中你只需要<selectid="selectUserByIdList"resultMap="usesInfo"> SELECT......
  • 【Matlab学习3.2】用if语句实现选择结构
    什么是选择结构选择结构又称为分支结构,是根据给定的条件是否成立来决定程序的执行流程。分为:用if语句实现选择结构。用switch语句实现选择结构。单分支if语句语句格式:if条件%关系运算或逻辑运算  语句组%可以是一条语句,也可以是多条语句end当条件结......