3.1-全栈Java笔记:Java控制语句 (上)选择结构篇

来源:互联网 发布:p2摄像机采集软件 编辑:程序博客网 时间:2024/05/17 08:45


我们需要开始学习控制语句,控制语句分为两类:选择和循环。 

“选择结构”代表“如果…,”的逻辑。

比如,如果女朋友来电,则迅速接电话;如果看到红灯,则停车;


“循环结构”代表“如果…,则再继续”的逻辑。

比如,如果没打通女朋友电话,则再继续打一次; 如果没找到喜欢的人,则再继续找。

 

很神奇的是,“选择和循环”就能表示所有的事情!

不信,你可以试试拆分你遇到的各种事情。

实际上,任何软件和程序,小到一个练习,大到一个操作系统,

本质上都是由“变量、选择语句、循环语句”组成。

 

这两种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过它们来表达 。上述两种结构组成的程序可以解决全部的问题,所以任何一种高级语言都具备上述三种结构。

 

因此,本章是大家真正跨入编程界的“门槛”,是成为“程序猿”的“门票”。 

选择结构

if单选择结构

语法结构:

    if(布尔表达式){

                   语句

}

if语句对条件表达式进行一次测试,若测试为真,则执行{}中的语句,否则跳过该语句。

   1 if结构流程图

【示例1if选择结构

double i = 6 * Math.random();

double j = 6 * Math.random();

double k = 6 * Math.random();

int count = (int) (i + j + k);

if(count > 15) {

    System.out.println("今天手气不错");

}

if(count >= 10 && count <= 15) {   //错误写法:10<count<15

    System.out.println("今天手气很一般");

}

if(count < 10) {

    System.out.println("今天手气不怎么样");

}

System.out.println("得了" + count + "");


示例运行效果图

Math类的使用

java.lang包中的Math类提供了一些用于数学计算的方法。

Math.random()该方法用于产生一个01这间的double类型的随机数。

int i =   (int) (6 * Math.random());   //产生:[0,5]之间的随机整数

新手雷区:

如果if语句不写{},则只能作用于后面的第一个语句。 强烈建议,任何时候都跟上{},即使里面只有一句话!

if-else双选择结构

  语法结构:

if(布尔表达式){

 语句1

}else{

       语句2

}

当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。

2 if-else 结构流程图

【示例2if-else结构

double r = 4 * Math.random();

double area = Math.PI   * Math.pow(r, 2);

double circle = 2 * Math.PI   * r;

System.out.println("半径为: " + r);

System.out.println("面积为: " + area);

System.out.println("周长为: " + circle);

if(area >= circle) {

    System.out.println("面积大于等于周长");

} else {

    System.out.println("周长大于面积");

}


示例运行效果图

条件运算符有时候可用于代替if/else,如示例3与示例4所示。

【示例3】使用if-else 

int a=2;

int b=3;

System.out.println((a<b)?a:b);


【示例4】使用条件运算符

int a=2;

int b=3;

if (a<b) {

    System.out.println(a);

else {

    System.out.println(b);

}

if-else if-else多选择结构

语法结构:

if(布尔表达式1) {

语句块1;

} else if(布尔表达式2) {

语句块2;

}………

else if(布尔表达式n){

    语句块n;

} else {

    语句块n+1;

}


 3 if-else if-else多选择流程图

【示例5if-else if-else多选择结构

public class  Welcome{

    public static void main(String[] args) {

       int age = (int) (100 * Math.random());

       System.out.print("年龄是" + age + ", 属于");

       if (age < 15) {

           System.out.println("儿童喜欢玩!");

       } else if (age < 25) {

           System.out.println("青年要学习!");

       } else if (age < 45) {

           System.out.println("中年要工作!");

       } else if (age < 65) {

           System.out.println("中老年要补钙!");

       } else if (age < 85) {

           System.out.println("老年多运动!");

       } else {

           System.out.println("老寿星古来稀!");

       }

    }

};


示例3-5运行效果图

示例3-5运行效果图

switch多选择结构

  语法结构:

switch (表达式) {

case 1:

语句序列;

[break];

case 2:

 语句序列;

[break];

     … … …      … …

[default:

 默认语句;]

}


switch多选择流程图

根据表达式值的不同执行许多不同的操作。switch语句中case标签在JDK1.5之前必须是整数或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)


switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。与任一case值不匹配,则进入default语句(如果存在default语句的情况)

【示例6switch结构

public class VowelsAndConsonants {

    public static void main(String[] args) {

       char  c = 'a';

       int rand =(int) (26*Math.random());

       char c2 = (char)(c+rand);

           System.out.print(c2 + ": ");

           switch (c2) {

           case 'a':

           case 'e':

           case 'i':

           case 'o':

           case 'u':

              System.out.println("元音");   break;

           case 'y':

           case 'w':

              System.out.println("半元音");    break;

           default:

              System.out.println("辅音");

           }     

    }

}


示例6运行效果图

示例6运行效果图




「全栈Java笔记」是一部能帮大家从零到一成长为全栈Java工程师系列笔记。笔者江湖人称 Mr. G,10年Java研发经验,曾在神州数码、航天院某所研发中心从事软件设计及研发工作,从小白逐渐做到工程师、高级工程师、架构师。精通Java平台软件开发,精通JAVAEE,熟悉各种流行开发框架。


笔记包含从浅入深的六大部分:

A-Java入门阶段

B-数据库从入门到精通

C-手刃移动前端和Web前端

D-J2EE从了解到实战

E-Java高级框架精解

F-Linux和Hadoop