Java 流程控制语句

灰太狼 2021-05-10 11:18 792阅读 0赞

Java 中涉及控制执行流程的关键字有 if-else、while-do-while、for、switch、return、break、continue 等等;我们来挑几个来说道说道。

1、要么生,要么死

在网络上看到这么一句话:“人生不过三条路,要么生,要么死,要么生不如死”,经典啊!这句话套用在 if-else 语句上也非常的贴切,不信你看:

只有一个 if 语句

  1. if (布尔表达式) {
  2. // 语句
  3. }

或者一个if语句加上一个else语句

  1. if (布尔表达式) {
  2. // 语句
  3. } else {
  4. // 语句
  5. }

或者一个if语句加上一个 else if 语句,再加一个 else 语句

  1. if (布尔表达式) {
  2. // 语句
  3. } else if (布尔表达式) {
  4. // 语句
  5. } else {
  6. // 语句
  7. }

2、想清楚再走,还是先走一步再说

while 和 do-while 语句常用来控制不确定次数的循环语句,除了形式上稍显不同之外,do-while 会比 while 多执行一次(同等条件下哦);其格式如下:

while

  1. while(布尔表达式) {
  2. // 语句
  3. }

do-while

  1. do {
  2. // 语句
  3. } while(布尔表达式)

3、次数确定请用 for

for 循环有两种形式,分别如下:

①、创建int变量的形式(可以主动指定循环次数,比如说可以把 i < strs.length() 改为 i < 3 ,这样就只循环 3 次而不是 4 次)

  1. String [] strs = { "沉", "默", "王", "二"};
  2. for(int i = 0; i < strs.length(); i++) {
  3. String str = strs[i];
  4. }

稍微解释一下:第一次循环之前要进行变量初始化 int i = 0,随后进行条件测试 i < strs.length(),然后执行语句 String str = strs[i];,语句结束后进行“步进” i++

②、俗称“foreach”的形式(不必指定下标就能取出元素)

  1. String [] strs = { "沉", "默", "王", "二"};
  2. for (String str : strs) {
  3. }

也稍微解释一下:冒号 : 之前声明了 String 类型的变量 str;冒号 : 之后是数组 strs;在执行循环的时候,Java 内部会依次取出数组 strs 中的每一个元素,然后赋值给变量 str,直到最后一个元素。

4、可以 switch 字符串了

当 if-else 的条件超出三个以上时(看起来有点臃肿),可使用 switch 语句来进行替代。switch 语句的形式如下:

  1. switch(condition) {
  2. case calue1 :
  3. // 语句
  4. break;
  5. case calue2 :
  6. // 语句
  7. break;
  8. case calue3 :
  9. // 语句
  10. break;
  11. default :
  12. // 语句
  13. }

使用 switch 语句时需要特别注意的就是 break 关键字,该用的地方一定不要忘记! 否则,switch 语句就会触发下一个 case 分支,而忽略掉没有 break 关键字的当前分支。

从 Java SE 7 开始,switch 语句支持字符串形式的条件了;在这之前,switch 只支持类型为 char、byte、short 或 int 的常量表达式,以及枚举常量。

5、斐波那契数列

斐波那契数列几乎是每一个学习编程的人都绕不开的一道笔试题;斐波那契数列是“斐波那契”(伟大的数学家)在养兔子时候发现的非常有意思的数列:

  • 第一个月小兔子没有繁殖能力,所以还是一对;
  • 两个月后,生下一对小兔总数共有两对;
  • 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;

……依次类推可以列出下表:

format_png

人们发现自然规律的能力好强,有没有?怎么使用 Java 实现斐波那契数列呢?

规律:第一个数+第二个数=第三个数,第二个数+第三个数=第四个数,第三个数+第四个数=第五个数,以此类推

流程控制语句有没有掌握,把这道斐波那契数列的面试题做出来就能测试出来了。具体代码:

  1. public class Fibonacci {
  2. public static void main(String[] args) {
  3. int start = 1;
  4. int next = 1;
  5. System.out.print(start + "、" + next + "、");
  6. // 从3开始到第num个斐波那契数
  7. for (int i = 3; i <= 12; i++) {
  8. int last = start + next;
  9. System.out.print(last + "、");
  10. start = next;
  11. next = last;
  12. }
  13. System.out.println();
  14. // 通过迭代计算,效率很低
  15. for (int i = 1; i <= 12; i++) {
  16. System.out.print(getFibonacci(i) + "、");
  17. }
  18. }
  19. private static int getFibonacci(int index) {
  20. if (index == 1 || index == 2) {
  21. return 1;
  22. }
  23. return getFibonacci(index - 1) + getFibonacci(index - 2);
  24. }
  25. }

思路1:先指定前两个数,然后在 for 循环中计算接下来的数,然后用后一个数替换前一个。

思路2:通过迭代完成,下标是 1 或者 2 的时候返回 1,其余的数等于前一个数和前前一个数的和。


上一篇:害死人的自动递增,不偿命的自动递减

下一篇:Java是通过什么机制来确保对象初始化呢?

微信搜索「沉默王二」公众号,关注后回复「免费视频」获取 500G Java 高质量教学视频(已分门别类)。

发表评论

表情:
评论列表 (有 0 条评论,792人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java流程控制语句

    Java流程控制语句   条件语句 分为三类, ☆单if语句格式: if(条件表达式)\{   条件表达式成立时执行该语句; \} 执行过程: ![202

    相关 JAVA流程控制语句

    Java语句的结构分为三种:顺序结构,选择结构,循环结构。 顺序结构:就是Java语句按从上到下的顺序按顺序执行,执行完一条语句紧跟着执行该语句下的语句。 循环结构:根据条

    相关 java流程控制语句

    流程控制语句结构 流程控制语句结构分为: 1、顺序结构:从上到下依次执行 2、分支结构:多个分支选择其中一个分支执行 3、循环结构:重复执行某些代码 顺序结构

    相关 Java流程控制语句

    定义 流程是指程序运行时,各语句的执行顺序。流程控制语句就是用来控制程序中各语句执行的顺序。 分类 顺序结构 [Java流程控制语句-顺序结构][Jav...