冒号的用法

  • 1. 三目运算符 “?:”
  • 2.switch-case的分支标记
  • 3.for循环的数组元素遍历
  • 4.多层循环的跳转标记

1. 三目运算符 “?:”

“式子A?式子B:式子C”:当A成立时,得到式子B的结果;当式子A不成立时,得到式子C的结果。

注:该运算符只适用于需要返回计算结果的场合。

2.switch-case的分支标记

     ......System.out.println("凉风有信,秋月无边。打二字");System.out.println("获取“凉风有信”的谜底请按1,获取“秋月无边”的谜底请按2");Scanner scan = new Scanner(System.in); // 从控制台接收输入文本int seq = scan.nextInt(); // nextInt方法表示接收一个整数,以回车键结尾// switch允许判断某个变量的多个取值,并分别进行单独处理switch (seq) {case 1: // seq值为1时进入该分支System.out.println("凉风有信的谜底是“讽”");break; // 跳出多路分支。即跳到switch分支的右花括号之后case 2: // seq值为2时进入该分支System.out.println("秋月无边的谜底是“二”");break; // 跳出多路分支。即跳到switch分支的右花括号之后default: // seq值为其它时进入该分支System.out.println("您的按键有误");break; // 跳出多路分支。即跳到switch分支的右花括号之后}System.out.println("猜谜结束");

多路分支固然好用,但要特别注意以下几点:
(1)多路分支只能判断整型(含byte、short、int)、字符型、枚举型3种类型的变量,无法判断布尔、浮点、双精度等其他类型的变量。

(2)case语句后面的数值只能做相等判断,不能开展大于、小于等其他关系运算。

3.for循环的数组元素遍历

若不修改元素的数值,则可以运用冒号对数组进行遍历,故利用“变量类型 变量名称 : 数组名称”的形式,直接把数组元素赋值给该变量。

     一维数组冒号遍历......int[] numbers = { 2, 3, 5, 7 };//for (int i = 0; i < numbers.length; i++) {//int number = numbers[i]; // 获取下标为i的元素,并赋值给名为number的变量//System.out.println("number = " + number);//}// 在for循环中,可以利用“变量类型 变量名称 : 数组名称”的形式,直接把数组元素赋值给该变量for (int number : numbers) {System.out.println("number = " + number);}
     二维数组冒号遍历......int[][] numbers = {{1,3,5} , {2,4,6}};/*for(int i = 0; i < numbers.length; i++){* for(int j = 0; j < numbers[].length; j++){*    System.out.println("value =" + numbers[i][j]);*/for(int[] number_1 : numbers) {for(int number_2 : number_1) {System.out.println("number_2 =" + number_2);}}

4.多层循环的跳转标记

此处的冒号也与循环语句有关,但不限于for循环,而是与for 和 while 都有关联。然而在实际开发中常常会遇到多层循环,为了更好的达到开发目的,便利用“ 标记名称 :for / while ” 的表达式,即可给定循环起一个外号,于是语句“break 标记名称 ”便实现跳出指定循环的需求。

     ......double[][] triangle = { { -2.0, 0.0 }, { 0.0, -1.0 }, { 2.0, 1.0 } };// 下面通过多重循环依次打印二维数组里面的所有元素for (int i = 0; i < triangle.length; i++) {for (int j = 0; j < triangle[i].length; j++) {System.out.println("value = " + triangle[i][j]);}}// 初始:处理要求:一旦发现数组元素等于0.0,就立即从第二层循环跳出第一层循环(跳出两层循环)for (int i = 0; i < triangle.length; i++) {boolean isFound = false; // 该布尔变量用来标记是否找到0.0for (int j = 0; j < triangle[i].length; j++) {if (triangle[i][j] == 0.0) {isFound = true; // 找到了0.0System.out.println("simple found 0.0");break; // 跳出第二层循环}}if (isFound) { // 根据布尔变量判断是否找到了0.0break; // 跳出第一层循环}}
// 优化:下面的loop1是一个记号,连同后面的冒号加在for前面,表示它指代这个for循环loop1: for (int i = 0; i < triangle.length; i++) {for (int j = 0; j < triangle[i].length; j++) {if (triangle[i][j] == 0.0) { // 找到了0.0,准备跳出外层循环System.out.println("loop1 found 0.0");break loop1; // 跳出loop1代表的循环,也就是跳出第一层循环}}}
// 最终优化:下面用到了两种冒号,一种用来标记循环,另一种用来简化数组遍历loop2: for (double[] dot : triangle) { // dot等价于前面的triangle[i]for (double coordinate : dot) { // coordinate等价于前面的triangle[i][j]if (coordinate == 0.0) { // 找到了0.0,准备跳出外层循环System.out.println("loop2 found 0.0");break loop2; // 跳出loop2代表的循环}}}

误解 :break 与 continue 区别:
可查看 如何退出多重循环 了解更多~

Java之冒号的用法相关推荐

  1. java中冒号(:)的用法

    你见到的冒号是在哪个地方的,java中不同的地方的冒号的作用是不同的,例如: 一. String[] abc = new String[3]{"a","b",& ...

  2. java中冒号的用法

    1. String[] abc = new String[3]{"a","b","c"}; for (String str : abc){ ...

  3. java中冒号:的用法

    转自: http://blog.sina.com.cn/s/blog_ab345e5d01011luk.html java中冒号(:)的用法 你见到的冒号是在哪个地方的,java中不同的地方的冒号的作 ...

  4. java lambda 两个冒号_java lambda 表达式中的双冒号的用法说明 ::

    双冒号运算就是java中的[方法引用],[方法引用]的格式是 类名::方法名 注意是方法名哦,后面没有括号"()"哒.为啥不要括号,因为这样的是式子并不代表一定会调用这个方法.这种 ...

  5. java 双冒号用法

    JDK8中有双冒号的用法,形如Class::methodname,符号左边是调用方法所处的类名,符号右边是调用的静态方法.简单的说,就是逐一传入参数值到某个类的静态方法并调用该静态方法. 以前的方式 ...

  6. java双冒号_jdk8新特性之双冒号 :: 用法及详解

    jdk8的新特性有很多,最亮眼的当属函数式编程的语法糖,本文主要讲解下双冒号::的用法. 概念 类名::方法名,相当于对这个方法闭包的引用,类似js中的一个function.比如: Function ...

  7. JAVA中冒号和问号的顺序_c语言问号冒号的用法

    c语言问号冒号的用法 有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1两种状态,用一位二进位即可.下面小编来为大家介绍c语言问号冒号的用法. ...

  8. java 语法 冒号_java中生僻的冒号跳转语法

    JAVA中冒号的一种用法,很少被人提及,我也从来没使用过.以前在一本书中看过的这种,该作者不推荐使用,今天闲了翻源码在String中看到: 定义标记scan: 括号中的内容如果遇到 break sca ...

  9. Java 中 switch 的用法

    Java 中 switch 的用法 1.switch 中的表达式的数据的数据类型为 byte, short, int, char, String(jdk > 1.7支持 String 类型) 2 ...

最新文章

  1. 开发过程真相...太真实了!一毛一样有没有!
  2. java中的接口中的方法
  3. 用神经网络模拟分子:钠的卤化物
  4. scrapy框架对接seleniumpipeline数据持久化
  5. 燃气灶电气线路图及原理_一位造价大神的电气工程造价知识整理笔记_深圳电气造价预算培训要多少钱...
  6. 电脑固态硬盘接口辨析
  7. 太牛了!分享一个Github上都没有的“网约车”项目!!!
  8. Android开发笔记(一百七十)给App的应用页面注册快捷方式
  9. 一纸书来只为墙,让他三尺又何妨?长城万里今犹在,不见当年秦始皇。
  10. 网页编码_Python获取网页编码(apparent_encoding)
  11. 有效解决办法:marven:Fatal error compiling: 无效的目标发行版: 11
  12. CH340串口驱动的官网下载链接地址(包含各大操作系统平台)
  13. 计算机网络应用基础总结,(完整版)计算机网络应用基础高教版对口高考复习资料总结...
  14. 一文读懂javascript深拷贝与浅拷贝
  15. ## DNF地狱猫官方版本公告
  16. html设置点击变换图标,【css】css实现点击Toggle功能/icon切换
  17. 服务器上文件共享有哪些协议,Windows中的文件共享协议
  18. take android,Protake安卓版下载,Protake安卓版app v0.9 - 浏览器家园
  19. Google Adsense(谷歌网站联盟)广告申请指南
  20. pymssql连接sql server报错:pymssql._pymssql.OperationalError

热门文章

  1. PHP代码审计归纳-Ali0th
  2. 使用BP网络逼近函数-matlab
  3. DP4809国产双通道耳机音频功率放大器芯片兼容替代LM4809
  4. 百度seo算法_SEO秘诀:Google的逆向工程算法
  5. [Unity]Optimize Your Mobile Game Performance中文版
  6. 一键端服务器维护,游戏服务器一键端
  7. ios 自定义拍照页面_iOS开发笔记:自定义相机拍照
  8. 斐讯n1遥控器app(支持休眠和唤醒)——WiFi篇
  9. 移动端 外部浏览器点击按钮跳转微信界面(唤醒微信)
  10. 简述冯诺依曼工作原理_冯.诺依曼计算机的基本工作原理是什么??