if语句和switch语句的选择与区别
if语句和Switch语句的选择
if 结构
基本if选择结构: 处理单一或组合条件的情况
if-else选择结构:处理简单的条件分支情况
多重if选择结构:处理复杂的条件分支情况
嵌套if选择结构:用于较为复杂的流程控制
switch 结构
多重分支并且条件判断是等值判断的情况
if语句和switch语句的区别:
if语句:
表达式的结果是boolean类型
常用于区间判断
switch:
表达式类型不能是boolean类型,可以是byte,int,char,String,枚举。
常用于等值判断
选择语句的选择:
能用switch语句实现的就一定可以使用if实现,但是反之不一定,如果是区间范围就采用if,如果是等值判断使用switch
适用场景
switch
- 枚举表达式的值.这种枚举是可以期望的,平行逻辑关系的
- 表达式的值具有离散性,不具有线性的非连续的区间值
- 表达式的值是固定的,不是动态变化的
- 表达式的值是有限的,而不是无限的,一般来说表达式应该比较少
- 表达式的值一般为整数,字符串等类型数据
if
- 具有复杂的逻辑关系
- 表达式的值具有线性特征,如对连续的区间值进行判断
- 表达式的值是动态的
- 测试任意类型的数据
if语句和switch语句的选择与区别的更多相关文章
- Java语法基础(三)----选择结构的if语句、switch语句
[前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过 ...
- JS基础_条件分支语句:switch语句
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Java学习之分支结构---判断语句:if语句和switch语句
一个if语句包含一个布尔表达式和一条或多条语句,if 语句的用语法如下:if 语句 if(布尔表达式) { //如果布尔表达式为true将执行的语句 },如果布尔表达式的值为 true,则执行 if ...
- 包、mode模式、if-else语句、switch语句
目录 包 mode模式 if-else语句 循环 switch语句 包 //1 在同一个包下(文件夹下),包名必须一致 //2 以后,包名就是文件夹的名字 //3 同一个包下,同名函数只能有一个(in ...
- 选择结构if语句和switch语句的区别
------- android培训.java培训.期待与您交流! ---------- 1.选择结构if语句格式及其使用 A:if语句的格式: if(比较表达式1) { 语句体1; }else if( ...
- 1203.2——条件语句 之 switch语句
用 if else 语句在处理多分支的时候,分支太多就会显得不方便,且容易出现 if 和 else配对出现错误的情况.例如,输入一个整数,输出该整数对应的星期几的英文表示: #include < ...
- java基础2 判断语句:if ... else 语句和 switch 语句
一.if ... else 判断语句 1.if ... else 判断语句的格式 1.1.格式一 if(判断条件){ 执行不满足条件的语句 } 1.2.格式二 if(判断语句){ 满足条件的语句 }e ...
- 第二部分 条件控制执行语句、循环语句、switch语句、跳转语句和其它语句
条件控制执行语句: if语句 if....else....语句 循环语句: while语句 do....while语句 for语句 switch语句: 跳转语句: break; continue; r ...
- if语句与switch语句
if语句可以替代switch语句,但是switch语句不能完全替代if语句.比如下面这种就是不对的 switch (len) { case (len <= 4): domLen = 4; bre ...
随机推荐
- 腾讯云centos7.5安装jdk1.8
手动解压安装包方法 在user目录下新建java文件夹 cd /usr/ mkdir java 把jdk安装包移动到java目录下 我已经提前下载jdk的tar包 mv jdk-8u251-linux ...
- 取得get参数 从url
1. getUrlParam.js define(function() { // url参数 var data, index; (function init() { data = []; index ...
- MySQL数据库连接重试功能和连接超时功能的DB连接Python实现
def reConndb(self): # 数据库连接重试功能和连接超时功能的DB连接 _conn_status = True _max_retries_count = 10 # 设置最大重试次数 _ ...
- [转载20131024]Nginx服务器漏洞的利用和修复方法
本文主要分为两大部分,第一部分介绍了Nginx的一些常见安全漏洞的形成原因.利用方法,并给出了相应的解决办法;第二部分介绍了Nginx安全加固时需要关注的主要内容. Nginx(发音同engine x ...
- Unittest 框架之断言,你学会了吗??
unittest断言 Python在 unittest.TestCase 类中提供了很多断言方法.断言方法检查你认为应该满足的条件是否确实满足.如果该条件确实满足,你对程序行为的假设就得到了确认,你就 ...
- CRM是什么,你有认真了解过CRM吗?
这是CRM的一个简单定义 客户关系管理 (CRM)是一种用于管理公司与客户和潜在客户的所有关系和互动的技术.目标很简单:改善业务关系.CRM 系统可帮助公司与客户保持联系.简化流程并提高盈利能力. 当 ...
- Unity——基于UGUI的UI框架
基于UGUI的UI框架 一.Demo展示 二.关键类 MonoSingle 继承MonoBehaviour的单例基类:做了一些特殊处理: 保证场景中必须有GameInit名称的物体,所有单例管理器脚本 ...
- java语言程序设计与数据结构(基础篇)第四章答案
4.1 import java.util.Scanner; public class Welcome { public static void main(String[] args) { Scanne ...
- 题解 [HAOI2018]反色游戏
题目传送门 题目大意 给出一个 \(n\) 个点 \(m\) 条无向边的图,每个点都有一个 \(\in [0,1]\) 的权值,每次可以选择一条边,然后将该边相连两点权值异或上 \(1\).问有多少种 ...
- SpringBoot入门06-Thymeleaf显示作用域对象种的对象
作用域对象request,session, servletContext中的数据在Thymeleaf中的显示都是相同的 作用域对象中的 List和Set的集合在html中的显示是相同的 作用域对象中的 ...