switch case语句

for,while,do...while,switch,break,continue,return的用法

a 夏天 提交于 2019-12-19 07:51:58
1:switch语句 (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break;//如果这里没有break,会case穿透 … default: 语句体n+1; break; } 表达式: 可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 执行流程: A:首先计算表达式的值 B:和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。 C:如果没有匹配,就执行default的语句体n+1。 注意事项: A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的 B:default 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。 特殊情况: case就可以把值固定。 A,B,C,D C:break 可以省略,但是结果可能不是我们想要的。 会出现一个现象:case穿透。 D:default 可以在任意位置。但是建议在最后。 E:switch语句的结束条件 a:遇到break就结束了 b:执行到末尾就结束了 public static void main(String[] args) { int a = 1; switch (a) { default: System.out.println("default");

10个实用的但偏执的Java编程技术

让人想犯罪 __ 提交于 2019-12-19 04:37:01
在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常。因为,你知道的…… 任何事情有可能出错,没错,的确如此。 这就是为什么我们要采用“ 防御性编程 ”,即一些偏执习惯的原因。下面是我个人认为的10个最有用但偏执的Java编程技术。一起来看一看吧: 1.将String字符串放在最前面 为了防止偶发性的 NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码: // Bad if (variable.equals("literal")) { ... } // Good if ("literal".equals(variable)) { ... } 这是随便用脑子想想就可以做的事,从Bad版本的代码改写表达式到Good版本的代码,这中间并不会丢失任何东西。欢迎不同的观点… 2.不要相信早期的JDK API 在Java早期,编程是一件非常痛苦的事情。那些API仍然很不成熟,也许你已经碰到过下面的代码块: String[] files = file.list(); // Watch out if (files != null) { for (int i = 0; i < files.length; i++) { ... } } 看上去很偏执?也许吧,但请看Javadoc

控制语句

こ雲淡風輕ζ 提交于 2019-12-18 03:54:58
控制语句 控制语句分为三类:顺序、选择和循环。 选择结构 主要的选择结构有:if选择结构和switch多选择结构。有如下结构: if单选择结构 if-else双选择结构 if-else if-else多选择结构 switch结构 if单选择结构 语法结构: if(布尔表达式){ 语句块 } if-else双选择结构 语法结构: if(布尔表达式){ 语句块1 }else{ 语句块2 } if-else if-else多选择结构 语法结构: if(布尔表达式1) { 语句块1; } else if(布尔表达式2) { 语句块2; }…… else if(布尔表达式n){ 语句块n; } else { 语句块n+1; } switch多选择结构 语法结构: switch (表达式) { case 值1: 语句序列1; [break]; case 值2: 语句序列2; [break]; … … … … … [default: 默认语句;] } switch语句中case标签在JDK1.5之前必须是 整数(long类型除外)或者枚举, 不能是字符串,在JDK1.7之后允许使用 字符串(String)。 循环结构 循环结构分两大类,一类是当型,一类是直到型。 当型: 当布尔表达式条件为true时,反复执行某语句,当布尔表达式的值为false时才停止循环,比如:while与for循环。 直到型

1、java语言的流程控制

房东的猫 提交于 2019-12-17 18:29:23
Java语言中有三种流程控制结构: 1、 顺序结构 2、 选择结构 3、 循环结构 顺序结构 含义:按语句的先后顺序来依次执行。 选择结构 含义:根据条件从多个分支中选择其中一条来执行。比如:if语句、if-else语句、switch语句。 条件语句(if、if-else、if嵌套、多重if): 特点:准确地检测判断条件成立与否。再决定是否执行后面的语句。 if语句 格式: if(条件表达式) { 语句 } if-else语句 格式: if(条件表达式){ 语句1 } else{ 语句2 } if嵌套 格式: if(条件表达式1){ if(条件表达式2){ 语句1 } else{ 语句2 } } else{ 语句3 } 多重if 格式 if(条件表达式1){ 语句1 } else if(条件表达式2){ 语句2 } else if(条件表达式3){ 语句3 } … else{ 语句n } 注意:如果if语句只有一个条件,则可以省略左右的中括号。 多重选择语句(switch语句) 特点:可以将多选一简单化。 格式: Switch(表达式1) { case 值1: 语句1; break; case 值2: 语句2; break; default: 语句3; } 注意:若case中都不符合,则执行default的语句。break是跳出语句的意思。 循环结构 比如while语句、do

【计算机笔记】Java 求1+2+3+...+n

不羁岁月 提交于 2019-12-17 10:18:59
64. 求 1+2+3+…+n 题目描述 要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句 A ? B : C。 解题思路 使用递归解法最重要的是指定返回条件,但是本题无法直接使用 if 语句来指定返回条件。 条件与 && 具有短路原则,即在第一个条件语句为 false 的情况下不会去执行第二个条件语句。利用这一特性,将递归的返回条件取非然后作为 && 的第一个条件语句,递归的主体转换为第二个条件语句,那么当递归的返回条件为 true 的情况下就不会执行递归的主体部分,递归返回。 本题的递归返回条件为 n <= 0,取非后就是 n > 0;递归的主体部分为 sum += Sum_Solution(n - 1),转换为条件语句后就是 (sum += Sum_Solution(n - 1)) > 0。 public int Sum_Solution ( int n ) { int sum = n ; boolean b = ( n > 0 ) && ( ( sum += Sum_Solution ( n - 1 ) ) > 0 ) ; return sum ; } 来源: CSDN 作者: DrogoZhang 链接: https://blog.csdn.net/weixin_40400177/article/details

Python学习笔记2(控制语句)

大城市里の小女人 提交于 2019-12-17 02:27:18
1.if条件语句 if(表达式): 语句1 else: 语句2 2.if...elif...else判断语句 if(表达式1):语句1 elif(表达式2):语句2 ... elif(表达式n):语句n else:语句m eg: #if elif else语句 score = float( input("score:")) if 90 <= score <=100: print("A") elif 80<= score <=90: print("B") elif 60<= score <=80: print("C") else: print("D") PS:编写if条件语句时,尽量避免使用嵌套语句。不便阅读,且可能忽略一些可能性 1 # 错误的嵌套语句 2 x = -1 3 y = 99 4 if(x != 0): 5 if(x > 0): 6 y = 1 7 else: 8 y = 0 9 print ("y =", y) 注意: Python代码的缩进规则。 具有相同缩进的代码被视为代码块 ,则上面的第7行的 else 语句与第4行的if对应。因此,当x!=0时,只考虑了x大于0的情况。 缩进请严格按照Python的习惯写法: 4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。 3.switch语句的代替方案

C++学习笔记(三):表达式与语句

僤鯓⒐⒋嵵緔 提交于 2019-12-16 20:51:25
说明: 本文是作者的一点总结,对所学的回顾与记录,如有不妥之处,欢迎大家指正,并且讨论交流。 1、表达式与运算符分不开,运算对象加运算符构成了表达式,表达式加分号就构成了语句。 2、运算符三大点,求值顺序、结合次序以及优先级,对运算符优先级有整体的理解,括号()可以改变优先级,也就是先计算括号里面的,如果不确定就加括号,注意运算时的类型提升与转换。 3、运算符用于内置类型,C++为运算符提供了重载机制,可以重载运算符作用于自定义类型,operator。 4、语句分为五类,赋值语句,选择语句,迭代语句、跳转语句以及异常处理语句。 5、赋值语句,赋值运算符左边必须是可更改的对象;选择语句分两种if…else与switch…case,根据情况进行选择;循环有四种:while循环,do…while循环,for循环以及范围for语句,怎么选择合适的循环,多编程总结,一般不确定输入while循环,确定for循环,遍历容器选择范围for循环,类型一般用auto,使用时注意不要破坏迭代器;异常处理try…catch,throw抛出异常,要写出异常安全的代码是很困难的,一般用于大型项目工程。 6、switch一般每个case后面都要有break,加上default,也许什么也不执行,要注意默认情况的处理,或者意外的情况;if与else的嵌套,else与最近的无else的if相匹配。 6

Java 控制语句

拟墨画扇 提交于 2019-12-16 17:34:59
Java 控制语句 📓 本文已归档到:「 javacore 」 🔁 本文中的示例代码已归档到:「 javacore 」 Java 控制语句大致可分为三大类: - 选择语句 - if, else-if, else - switch - 循环语句 - while - do...while - for - foreach - 终端语句 - break - continue - return 1. 选择语句 1.1. if 语句 1.2. if...else 语句 1.3. if...else if...else 语句 1.4. 嵌套的 if…else 语句 1.5. switch 语句 2. 循环语句 2.1. while 循环 2.2. do while 循环 2.3. for 循环 2.4. foreach 循环 3. 中断语句 3.1. break 关键字 3.2. continue 关键字 3.3. return 关键字 4. 最佳实践 5. 参考资料 1. 选择语句 1.1. if 语句 if 语句会判断括号中的条件是否成立,如果成立则执行 if 语句中的代码块,否则跳过代码块继续执行。 语法 if(布尔表达式) { //如果布尔表达式为true将执行的语句 } 示例 public class IfDemo { public static void main(String

Swift编程高级教程

爱⌒轻易说出口 提交于 2019-12-15 20:38:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 常量与变量 常量和变量是某个特定类型的值的名字,如果在程序运行时值不能被修改的是一个常量,反之是一个变量。 常量和变量的声明 Swift中的常量和变量在使用前必须先声明。其中let关键字声明常量,var关键字声明变量: //声明一个名为maximumNumberOfLoginAttempts的整型常量,并且值为10 let maximumNumberOfLoginAttempts = 10 //声明一个名为currentLoginAttempt的整型变量,并且值为0 var currentLoginAttempt = 0 可以在同一行声明多个变量,中间用逗号,隔开: var x = 0.0 , y = 0.0 , z = 0.0 提示 如果在程序运行的时候值不需要发生改变,应该将它们声明为常量,否则声明为变量 变量的值可以进行修改: var friendlyWelcome = "Hello!" friendlyWelcome = "Bonjour!" //friendlyWelcome的值发生改变 常量的值一旦设置后就不能在修改: let languageName = "Swift" languageName = "Swift++" //编译时出错 类型说明 在Swift中声明常量或者变量可以在后面用冒号

为什么不能在switch语句中声明变量?

☆樱花仙子☆ 提交于 2019-12-15 20:28:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我一直想知道-为什么您不能在switch语句中的case标签之后声明变量? 在C ++中,您几乎可以在任何地方声明变量(并且声明它们接近首次使用显然是一件好事),但以下操作仍然无效: switch (val) { case VAL: // This won't work int newVal = 42; break; case ANOTHER_VAL: ... break; } 上面给了我以下错误(MSC): “ newVal”的初始化被“ case”标签跳过 这似乎也是其他语言的限制。 为什么会有这样的问题? #1楼 C ++ Standard具有:可以传输到块中,但不能以初始化绕过声明的方式进行。 除非变量具有POD类型(3.9)且声明时没有初始化程序(8.5),否则该程序将从具有自动存储持续时间的局部变量不在范围内的点跳转到其处于范围内的点的格式不正确。 用来说明此规则的代码: #include <iostream> using namespace std; class X { public: X() { cout << "constructor" << endl; } ~X() { cout << "destructor" << endl; } }; template <class type> void