JavaSE篇学习之路:(三)【流程控制语句】

简介: 流程控制语句使用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块,其流程控制方式有:顺序结构、分支结构和循环结构。

第一章:三元运算符



三元运算符,也称为三目运算符或问号冒号运算符。即有三个表达式参与的运算表达式。


既然是个运算符,那么运算完必须有运算结果。


1.1三元运算符格式


条件表达式?表达式1:表达式2


2.1运算原则


条件表达式 运算结果必须为boolean类型的值。

当 条件表达式 的值是true时,表达式1结果就是三元运算符的结果。

当 条件表达式 的值是false时,表达式2结果就是三元运算符的结果。


3.1举例


 

    class OperateDemo 
    {
      public static void main(String[] args) 
      {
        int x = 3 ;
        int y ;
        y = x  < 10 ? 100 : 200;
        System.out.println("y="+y);
      }
    }


使用三元运算符求两个数的最大值:


 

    class OperateDemo 
    {
      public static void main(String[] args) 
      {
        int a = 3 ;
        int b = 5 ;
        int max ;
        max = a < b ? b : a;
        System.out.println("max="+max);
      }
    }


思考:如何使用三元运算如何求三个数的最大值(最小值)。


class Demo{
  public static void main(String[] args) 
      {
        int a = 3 ;
        int b = 5 ;
        int c = 6   ;
        int max1 ;
        max1 = a < b ? b : a;
        int max2=max1 >6 ? max1 : 6;
        System.out.println("max=2"+max2);
      }
}


第二章:顺序结构



程序的流程 即就是 代码的执行顺序


    class Demo 
    {
      public static void main(String[] args) 
      {
        int a = 3 ;
        int b = 5 ;
        int sum ;
        sum = a + b;
        System.out.println("sum="+sum);
      }
    }


上述代码当在dos命令行中写入java Demo 回车之后,首先会启动JVM,JVM就会去加载当前Demo这个class文件,并执行其中的main方法。当程序执行main方法的时候会从第一行开始往下执行,直到整个代码全部执行完成。在此过程中程序按照书写的顺序,不会跳过任何一行代码。像这样的执行流程就是常见的顺序执行结构


第三章:选择结构



1.1 if条件语句


if是Java中的关键字,当程序在执行过程遇到if关键字,JVM就知道此处需要进行判断,根据判断结果需要处理相应的代码


1.2 if三种格式


1.2.1第一种格式


if(条件表达式)
{
  执行语句;
}


格式说明:if关键字后面是一对小括号,小括号后面是没有分号的,小括号中的表达式运算完的结果必须是boolean类型的值。


if流程控制执行顺序:JVM在执行代码时,遇到if关键字,首先会运算if括号中的表达式,当if中表达式的值为true时,就会执行if后面大括号中的语句。当if中表达式的值为false时,就会跳过if后面大括号中的语句,继续执行大括号下面的其他语句。


class IfDemo 
{
  public static void main(String[] args) 
  {
    int y = 4;
    if( y > 4)
    {
      System.out.println("y大于4");
    }
    System.out.println("over");
  }
}


1.2.2第二种格式


if(条件表达式)
{
  执行语句;
}
else
{
  执行语句;
}


执行说明:当if条件表达式为true时,执行if后面大括号中的语句,当if条件表达式为false时,执行else后面大括号中的语句。if-else格式组合成一条判断结构语句。要么执行if后面的语句,要么执行else后面的语句。切记,else后面的语句要能够执行,if中的条件表达式结果必须是false。


class IfDemo 
{
  public static void main(String[] args) 
  {
    int y = 4;
    if( y > 4)
    {
      System.out.println("y大于4");
    }
    else
    {
      System.out.println("y小于等于4");
    }
    System.out.println("over");
  }
}


1.2.3第三种格式


 

    if(条件表达式)
  {
    执行语句;
  }
  else if (条件表达式)
  {
    执行语句;
  }
  ……
  else
  {
    执行语句;
  }


代码演示:


class IfDemo 
{
  public static void main(String[] args) 
  {
    int a = 3;
    if( a > 1)
    {
      System.out.println("a");
    }
    else if( a > 2)
    {
      System.out.println("b");
    }
    else if( a > 3)
    {
      System.out.println("c");
    }
    else 
    {
      System.out.println("d");
    }
  }
}


2.1 switch多分枝语句


2.1.1 swit语句格式


switch(表达式)
{
  case 取值1:
    执行语句;
    break;
  case 取值2:
    执行语句;
    break;
  ...
  default:
    执行语句;
    break;
}


程序执行时,遇到switch关键字,首先会计算表达式的值,然后根据计算的值和case后面的值做比较,当case后面的值和switch表达式的值相同时,就执行case身后的所有语句,若case身后没有和switch表达式匹配的值,程序就会执行default后面的语句。


代码演示:


class SwitchDemo 
{
  public static void main(String[] args) 
  {
    int x = 5;
    switch(x){
      case 5:
        System.out.println("a");
        break;      
      case 3:
        System.out.println("b");
        break;
      default:
        System.out.println("c");
        break;  
    }
    System.out.println("Hello World!");
  }
}


2.1.2 swit语句特点


1.switch语句选择的类型只有四种:byte,short,int , char。(java5之前)。还支持 enum(jdk5),

String(jdk7);


2.case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。


3.结束switch语句的两种情况:遇到break,执行到switch语句结束。


4.如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。


3.1 if与switch区别


if可以用于判断数值,也可以判断区间,只要运算结果是boolean类型,都可以进行判断。


switch用于对固定的几个值,进行判断。判断的值的类型有限。


第四章:循环结构



1.1循环结构分类


Java中的循环结构有如下三种:


while:事先不需要知道循环执行多少次;


do-while:同上,只是至少要执行一次(先做,后判断);


for:需要知道循环次数;


2.1 while循环


2.1.1格式

while(条件表达式)
{
  执行语句;
}


while执行顺序:当程序遇到while关键字时,JVM首先会运算while后面的条件表达式,当条件表达式为true时,就会执行while后面大括号中的语句,当把大括号中的所有语句执行完之后,会又回到while的条件表达式处再次判断,若还为true,就继续执行大括号中的语句,若为false就跳过大括号中的所有语句,继续往下执行。


class WhileDemo 
{
  public static void main(String[] args) 
  {
    int i = 1;
    while( i < 10 )//这个程序是个死循环
    {
      System.out.println("i"+i);
    }
    System.out.println("over");
  }
}
/*上述循环是个无限循环(也称为死循环),主要原因是i变量一直为1,每次判断i<10都成立,导致选好条件结束不了。程序永远卡在循环这个地方执行*/
public static void main(String[] args) 
  {
    int i = 1;
    while( i < 10 )
    {
      System.out.println("i"+i);
      i++; // 让i不断的更新,最后使循环可以结束
    }
    System.out.println("over");
  }


2.1.2 while循环注意事项


1.while循环的括号中的表达式计算结果必须为boolean类型的值。

2.while循环的括号中不能直接写false常量。

3.while循环的括号后面不要写分号,循环控制的语句的代码用大括号扩起来。

4.while循环控制的条件变量一定要更新,保证循环能够正常结束。


3.1 do-while循环


3.1.1格式


do
{
  执行语句;
}while(条件表达式);


执行顺序:先执行do后面的语句,当执行完之后再进入条件表达式进行判断,若条件表达式结果为true继续执行do后面的语句,若条件表达式结果为false,则结束循环。


do while特点是无论条件是否满足,循环体至少被执行一次。


4.1 for循环


4.1.1 格式


for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3))
{
    执行语句;(4)
}


代码演示:


class ForDemo 
{
  public static void main(String[] args) 
  {
    for(int x= 1; x<3; x++)
    {
      System.out.println("x="+x);
    }
    }
}


第五章:嵌套循环



循环嵌套:其实就是在循环中还有循环。简称大圈套小圈


代码演示:


class ForForDemo 
{
  public static void main(String[] args) 
  {
    for (int x=0; x<3; x++)//行
    {
      for(int y=0; y<4; y++)//每一行的个数。
      {
        System.out.print("y="+y);
      }
    }
  }
}


在循环嵌套中,外循环执行一次,内循环要从头外尾执行完。


第六章:流程控制



1.1 break语句、 continue语句


break:终止该层循环;

continue:跳过该层循环


注意:


1.若这两个语句离开应用范围,存在是没有意义的。

2.这个两个语句单独存在后面都不能有语句,因为执行不到。

3.continue语句是跳过本次循环,继续下次循环。

4.标签的出现,可以让这两个语句作用于指定的循环。


2.1 break语句、 continue语句举例

break是终止循环,即在程序中遇到break,那么break所属的循环将结束。
    for (int x=0; x<3 ;x++ )
    {
      if(x==1)
        break;
      System.out.println("x="+x);     
    }
continue是结束本次循环,继续下次循环。循环是不会结束的。
    for (int x=0; x<10 ;x++ )
    {
      if(x%2==0)
        continue;
      System.out.println("x="+x);
    }


3.1循环标签


在多层嵌套循环中,终止/跳过标签标记的那层循环的执行;break <标签> 或 continue <标签>;


outer:for (int x=0; x<3 ;x++ )
{
  inner:for (int y=0; y<4 ;y++ )
    {
         System.out.println("x="+x);
         break outer;
     }
}
///
outer:for (int x=0; x<3 ;x++ )
{
        inner:for (int y=0; y<4 ;y++ )
        {
               System.out.println("x="+x);
continue outer;
        }
}


相关文章
|
7月前
|
Java
【Java开发指南 | 第十三篇】Java条件语句
【Java开发指南 | 第十三篇】Java条件语句
43 2
【Java开发指南 | 第十三篇】Java条件语句
|
5月前
|
存储 Java 索引
JavaSE—基础语法复盘
JavaSE—基础语法复盘
|
7月前
|
Java 测试技术 索引
滚雪球学Java(14):快速入门JavaSE-for循环语句,轻松掌握编程技巧
【4月更文挑战第3天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
60 1
滚雪球学Java(14):快速入门JavaSE-for循环语句,轻松掌握编程技巧
|
7月前
|
Java
【JAVA基础篇教学】第三篇:Java循环控制语句
【JAVA基础篇教学】第三篇:Java循环控制语句
|
存储 搜索推荐 IDE
【JavaSE成神之路】一文洞悉Java语言的基本语法
哈喽,我是兔哥,今天就让我们继续这个JavaSE成神之路! 这一节,咱们要学习的内容是Java语言的基本语法,包括变量、常量、数据类型、运算符、流程控制语句、数组、字符串。 这是我们学好Java的基石,万丈高楼平地起的前提就是打好地基。 下面就让我们来一一参悟这些概念吧。
【JavaSE成神之路】一文洞悉Java语言的基本语法
【JavaSE成神之路】流程控制语句
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是流程控制语句。
128 0
|
Java 编译器
【JavaSE成神之路】可变参数
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java的可变参数。
|
Java
java学习第四天笔记-流程控制语句-分支结构83-do...while
java学习第四天笔记-流程控制语句-分支结构83-do...while
63 0
java学习第四天笔记-流程控制语句-分支结构83-do...while
|
Java
java学习第三天笔记-流程控制语句-分支结构62-if1
java学习第三天笔记-流程控制语句-分支结构62-if1
45 0
java学习第三天笔记-流程控制语句-分支结构62-if1
|
Java
java学习第三天笔记-流程控制语句-分支结构64-小练习
java学习第三天笔记-流程控制语句-分支结构64-小练习
58 0
java学习第三天笔记-流程控制语句-分支结构64-小练习