目录

  • 4.1 true和false
  • 4.2 if-else
  • 4.3 迭代
    • 4.3.1 do-while
    • 4.3.2 for
  • 练习1
  • 练习2
  • 练习3
  • 练习4
  • 练习5
    • 4.3.3 逗号操作符
  • 4.4 Foreach语句
  • 4.5 rerurn
  • '练习6
  • 4.6 break和continue
  • 练习7
  • 4.7 臭名昭著的goto
  • 4.8 switch
  • 练习8
  • 练习9
  • 练习10

4.1 true和false

4.2 if-else

4.3 迭代

public class Test01 {public static void main(String[] args) {System.out.println("start work...");while (condition()) {System.out.println("do working...");}System.out.println("end work...");}static boolean condition() {boolean result = Math.random() < 0.99;System.out.println("result = " + result);return result;}
}

4.3.1 do-while

do {statement
}while(Boolean-expression)

4.3.2 for

for (initialization; Boolean-expression; step) {statement
}

练习1

public class Exec01 {public static void main(String[] args) {for(int i = 1; i <= 100; i++ )System.out.println(i);}
}

练习2

import java.util.Random;public class Exec02 {public static void main(String[] args) {Random r = new Random();int before = r.nextInt(100);int current = r.nextInt(100);for (int i = 0; i < 25; i++) {System.out.print("before=" + before + ", current=" + current + ": ");if (before < current) System.out.println("大于");else if (before > current) System.out.println("小于");else System.out.println("等于");before = current;current = r.nextInt(100);}}
}

练习3

import java.util.Random;public class Exec02 {public static void main(String[] args) {Random r = new Random();int before = r.nextInt(100);int current = r.nextInt(100);while ()for (int i = 0; i < 25; i++) {System.out.print("before=" + before + ", current=" + current + ": ");if (before < current) System.out.println("大于");else if (before > current) System.out.println("小于");else System.out.println("等于");before = current;current = r.nextInt(100);}}
}

练习4

public class Exec04 {public static void main(String[] args) {boolean flag = true;for (int i = 2; i <= 100; i++) {for (int j = 2; j < i; j++)if (i % j == 0) {flag = false;break;}if (flag) System.out.println(i);flag = true;;}}
}

练习5

public class Exec05 {public static void main(String[] args) {String result = method1(10, "");System.out.println(result);}public static String method1(int a, String s) {return a > 0 ? method1(a >>> 1, (a & 1) + s) : s;}
}

4.3.3 逗号操作符

注意是逗号操作符,而不是逗号分隔符。

  • 逗号分隔符:用来分隔函数的不同参数的。
  • 逗号操作符:用在fior循环的控制表达式中。在控制表达式的初始化和步进控制部分。可以使用一个或几个逗号分隔语句,这些语句会独立执行。
public class Test02 {public static void main(String[] args) {for(int i = 1, j = i + 10; i < 5; i++, j = i * 2) {System.out.println("i=" + i + ", j=" + j);}}
}

初始化部分可以定义任意数量的相同类型变量。

4.4 Foreach语句

javase5引入的foreeach语句语法。不用创建int变量,就可以便利数值和容器、

4.5 rerurn

java中表示无条件分支关键词:returnbreakcontinue、goto。

return的用途

  1. 指定一个方法的返回什么值;
  2. 结束方法,返回那个值。
public class Test03 {static int test(int testval. int target) {if(testval > target) return +1;else if(test < target) return -1;else return 0;  // 不用加else 因为前面的if语句都有return语句,都可以终止执行。}public static void main(String[] args) {System.out.println(test(10, 5));}
}

如果在返回值是void的方法中,没有return语句,系统会在该方法的结尾处添加一个隐式的return。

'练习6

// P135
public class Exec06 {public static void main(String[] args) {IfElse.test(10, 5, 1, 20);System.out.println(IfElse2.test(10, 5, 1, 20));}}class IfElse {static int result = 0;static void test(int testval, int target, int begin, int end) {if (testval > begin && testval < end) System.out.println(testval + "在(" + begin + ", " + end + ")之间") ;if(testval > target) result = +1;else if(testval < target) testval = -1;else result = 0;}
}class IfElse2 {static int test(int testval, int target, int begin, int end) {if (testval > begin && testval < end) System.out.println(testval + "在(" + begin + ", " + end + ")之间") ;if(testval > target) return +1;else if(testval < target) return -1;else return 0;}
}

4.6 break和continue

练习7

public class Exec07 {/*public static void main(String[] args) {for(int i = 1; i <= 100; i++ ) {System.out.println(i);if (i == 99) break;}}*/public static void main(String[] args) {for(int i = 1; i <= 100; i++ ) {System.out.println(i);if (i == 99) return;}}
}

4.7 臭名昭著的goto

  • 一般的continue会退回最内层循环的开头(顶部),并继续执行。
  • 带标签的continue会到达标签的位置,并重新进入紧接在哪个标签后面的循环。
  • 一般的break会中断并跳出当前的循环。
  • 带标签的break会中断并跳出标签所致的循环。

4.8 switch

switch的格式如下:

switch(integral-selector) {case integral-value1 : statement; break;case integral-value2 : statement; break;case integral-value3 : statement; break;// ...default: statement;
}

integral-selector(整数选择因子),是一个表达式,它能否产生整数值。如果iswitch会将ntegral-selector的值与多个integral-value(整数值)相比较,相等就执行对应的statement(单个语句,或者是多条语句,不需要用括号括起来)。每个case的后面都有一个break语句。但是最后一个default后面没有break语句。

integral-selector可以是intcharenum类型。

import java.util.Random;// 随机生成字母,并判断他们是元音还是辅音字母
// A的ASCII码是65,a的ASCII码是97
public class Test03 {public static void main(String[] args) {Random r = new Random(10);char ch;for (int i = 0; i < 10; i++) {if (i % 2 == 0) ch = (char) (r.nextInt(26) + 65);else ch = (char) (r.nextInt(26) + 97);System.out.print(ch + ", " + (int)ch + " : ");switch (Character.toUpperCase(ch)) {case 'A':case 'E':case 'I':case 'O':case 'U': System.out.println("vowel"); break;case 'Y':case 'W':System.out.println("sometimes a vowel"); break;default: System.out.println("consonant");}}}
}
// 运行结果
P, 80 : consonant
g, 103 : consonant
L, 76 : consonant
y, 121 : sometimes a vowel
E, 69 : vowel
s, 115 : consonant
F, 70 : consonant
m, 109 : consonant
V, 86 : consonant
c, 99 : consonant

练习8

import java.util.Random;public class Exec08 {public static void main(String[] args) {Random r = new Random(10);// 产生[2, 7)的整数值/*for (int i = 0; i < 2; i++) {int a = r.nextInt(7 - 2) + 2;switch(a) {case 2: System.out.println("222"); break;case 3: System.out.println("333"); break;case 4: System.out.println("444"); break;case 5: System.out.println("555"); break;default: System.out.println("666");}}/* 运行结果:555222*/for (int i = 0; i < 2; i++) {int a = r.nextInt(7 - 2) + 2;System.out.print("a=" + a + " : ");switch(a) {case 2: System.out.println("222");case 3: System.out.println("333");case 4: System.out.println("444");case 5: System.out.println("555");default: System.out.println("666");}}/*运行结果a=5 : 555666a=2 : 222333444555666*/}
}

练习9

public class Exec09 {public static void main(String[] args) {int n = args.length > 0 ? Integer.parseInt(args[0]) : 5;findFib(n);}public static void findFib(int n) {switch (n) {case 1 : System.out.println(1); break;case 2 : System.out.println("1、1"); break;default:StringBuilder builder = new StringBuilder("1、1、");for (int i = 3; i <= n; i++) {int fib = fib(i);builder.append(fib);builder.append("、");}System.out.println(builder.deleteCharAt(builder.length() - 1));}}private static int fib(int n) {if (n <= 1) return 1;return fib(n-1) + fib(n-2);}
}
// 运行结果
1、1、3、5、8

练习10

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;public class Exec10 {public static void main(String[] args) {Set<Object> set = new HashSet<>();for (int i = 1001; i < 10000; i++) {int a = i / 1000;int b = i % 1000 / 100;int c = i % 100 / 10;int d = i % 10;if (c == 0 && d == 0) continue;if (i == 6880)System.out.println();if (i == (a * 10 + b) * (c * 10 + d) && c != 0) set.add(i);if (i == (a * 10 + b) * (d * 10 + c) && d != 0) set.add(i);if (i == (a * 10 + c) * (b * 10 + d) && b != 0) set.add(i);if (i == (a * 10 + c) * (d * 10 + b) && d != 0) set.add(i);if (i == (a * 10 + d) * (b * 10 + c) && b != 0) set.add(i);if (i == (a * 10 + d) * (c * 10 + b) && c != 0) set.add(i);if (b != 0) {if (i == (b * 10 + a) * (c * 10 + d) && c != 0) set.add(i);if (i == (b * 10 + a) * (d * 10 + c) && d != 0) set.add(i);if (i == (b * 10 + c) * (d * 10 + a) && d != 0) set.add(i);if (i == (b * 10 + d) * (c * 10 + a) && c != 0) set.add(i);}if (c != 0) {if (i == (c * 10 + a) * (b * 10 + d) && b != 0) set.add(i);if (i == (c * 10 + a) * (d * 10 + b) && d != 0) set.add(i);if (i == (c * 10 + d) * (b * 10 + a) && b != 0) set.add(i);}if (d != 0) {if (i == (d * 10 + b) * (c * 10 + a) && c != 0) set.add(i);if (i == (d * 10 + c) * (b * 10 + a) && b != 0) set.add(i);if (i == (d * 10 + a) * (b * 10 + c) && b != 0) set.add(i);if (i == (d * 10 + a) * (c * 10 + b) && c != 0) set.add(i);}}Object[] arr = set.toArray();Arrays.sort(arr);for (Object i : arr) {System.out.println(i);}}
}
// 运行结果
1260
1395
1435
1530
1827
2187
6880

java学习笔记 java编程思想 第4章 控制执行流程相关推荐

  1. java学习笔记 java编程思想 第6章 访问权限控制

    文章目录 6.1 包:库单元(the library unit) 6.1.1 代码组织 6.1.2 创建独一无二的包名 练习1 练习2 6.1.3 定制工具类 6.1.4 用import改变行为 练习 ...

  2. Java学习笔记-网络编程

    Java提供了网络编程,并且在实际中有着大量运用 网络编程 网络编程概述 网络模型 OSI参考模型 TCP/IP参考模型 网络通讯要素 IP地址 端口号 传输协议 网络参考模型 网络通讯要素 IP地址 ...

  3. java学习笔记—java的学习路线

    Java体系涉及到三个方面:J2SE,J2EE,J2ME(KJAVA). J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它是三者的基 ...

  4. 狂神说Java学习笔记 Java基础

    目录 机器语言 第二代语言(汇编语言) 第三代语言 高级语言 Java特性和优势 JDK(Java Development Kit) JRE(Java Runtime Enviroment) JVM( ...

  5. JAVA学习笔记—JAVA SE(四)JAVA核心库类(下)

    文章目录 四.JAVA核心库类(下) 1. 异常机制和File类 1.1 异常机制 1.1.1 基本概念 1.1.2 异常的分类 1.1.3 异常的避免 1.1.4 异常的捕获 1.1.5 异常的抛出 ...

  6. Java学习笔记10---访问权限修饰符如何控制成员变量、成员方法及类的访问范围...

    1.Java有三种访问权限修饰符,分别为public.protected.private,还有一种为缺省权限修饰符的情况,记为default.其中,可以由public和default来修饰类:这四种修 ...

  7. Java学习笔记--Java中必记常见异常

    JAVA常见异常 Java.io.NullPointerException null 空的,不存在的 NullPointer 空指针 空指针异常,该异常出现在我们操作某个对象的属性或方法时,如果该对象 ...

  8. java学习笔记 java编程思想 第7章 复用类

    文章目录 7.1 组合语法 练习1 7.2 继承语法 7.2.1 初始化基类 练习3 练习4 练习5 带参数的构造器 练习6 练习7 练习8 练习9 练习10 7.3 代理 练习11 7.4 结合使用 ...

  9. java 学习笔记-网络编程(八)

    网络编程 标签:学习各种网络协议的桥梁 什么是计算机网络 计算机网络的作用:资源共享和信息传递. 计算机网络的组成: a) 计算机硬件:计算机(大中小型服务器,台式机.笔记本等).外部设备(路由器.交 ...

最新文章

  1. mac os 系统密码正确的 但是进不了系统
  2. 浅谈巴拿马电源的谐波消除原理
  3. 【Python】值得推荐的12个jupyter lab插件
  4. Java 多线程(一) 基础知识与概念
  5. deebot扫地机器人响四声_别人家的扫地机器人,是“清洁小能手”,我家的可能是个“智障”...
  6. Hadoop单机伪分布式安装(完整版)
  7. ImportError: No module named 'requests.packages.urllib3'
  8. DBeaver 7.2.4 发布,可视化数据库管理平台
  9. python电力系统暂态分析_电力系统暂态计算——时域仿真方法
  10. SIM800L 模块 使用AT命令打电话
  11. 查询2021高考成绩位次,2021年江苏高考位次表及高考个人成绩排名查询
  12. 将数据库中用户表 名称设置对应的拼音账号sql
  13. 电脑连接WiFi后显示找不到……的DNS地址
  14. 日复一日的坚持着,希望自己早日如愿,把一个个职业规划尽快实现
  15. pt, px,em,ex,in等这类长度单位
  16. chrome 改变网页主题 设置黑色主题网页
  17. Unity与3ds Max的单位关系(使用FBX文件)
  18. Excel地图插件(ExcelMaps)
  19. 四工业控制系统的攻击场景研究
  20. java 强制gc_如何强制GC回收垃圾

热门文章

  1. Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)
  2. 实现一个js抽奖玩玩?
  3. 小学计算机教案用画笔绘画,电脑美术教学设计《神奇的画笔》
  4. 概论_第3章_已知联合密度求边缘密度
  5. 两百行C++代码实现yolov5车辆计数部署(通俗易懂版)
  6. 【技巧】带搜索的城市下拉
  7. 《缠中说禅108课》16:中小资金的高效买卖法
  8. Pyecharts中Map和Geo的使用笔记
  9. 用计算机按出童话,电脑争功童话故事作文
  10. 廉洁文化 计算机学院,计算机学院“廉洁在志·系列作品”征集活动评选结果