java程序的三个分支_Java流程控制 (分支与循环)

流程控制目录:

顺序结构

分支

循环

循环嵌套

控制循环的关键词

总会出现一种场景:要满足某个条件时,才去做一件事情。                         —分支

也有另外一种场景:重复做一个事情,直到满足某个条件才会停下来。       —循环

编程就是把一些人类不愿意干、干起来很乏味的事情,告诉计算机去做

流程控制一共有 3 种结构:

A.  顺序结构。如果没有流程控制,计算机总是从上到下,依次执行每一行。

B.  分支。满足某个条件时,才去执行代码。

C.  循环。重复一段代码。

分支:if  、 switch

if 语句

3 种语法:

第一种语法格式:

if(  返回 boolean 的表达式)

{

// 要做的事情

}

第二种语法格式:

if(  返回 boolean 的表达式)

{

// 要做的事情

}

else

{

// 要做的事情

}

第三种语法格式:

if (  返回 boolean 的表达式)

{

// 要做的事情

}

else if (  返回 boolean 的表达式)      // else if 可出现 0~N 次

{

}

else                                                 // else  可出现 0~1 次

{

// 要做的事情

}

2 个注意点:

A.    如果条件执行体只有一行代码,Java 允许省略条件执行体的花括号。

规则:如果省略了花括号,if 条件只控制到第一个分号(;)前面

建议:即使条件执行体只有一行代码,也包括花括号。

B.    else 本身就是条件

当我们有多个 else if 块时,

建议:先处理范围小的条件。

switch语句

当等于某个值时,才执行一段代码

只有在 JDK 7 里,表达式的值才能 String

switch( 返回值是 byte 、short、char、int 或 String 或 枚举的表达式)

{

case 值 1:                         // case 块可以出现 1~N 次

// 要做的事情

break;

case 值 2:

// 要做的事情

break;

case 值 3:

// 要做的事情

break;

default:    // 当表达式的值与前面所有 case 块的值都不相等时,才会执行。

// 要做的事情

}

注意点:省略 break 后的注意点                           //  笔试题 会考!!!!!!!!!!!!!

省略 break 后的执行流程,拿 switch 表达式的值,依次与每个 case 块的值进行比较。

当遇到一个相等的值后,将直接执行所有的执行性代码,

在遇到 break 语句之前,不会与 case 块的值进行比较,而是直接执行代码。

省略 break 几乎没有太大的价值。

建议:每次写了 case 之后,在写其他代码之前,立即写 break

SwitchTest 程序 及 运行结果:

public class SwitchTest

{

public static void main(String[] args)

{

char score = 'B';

switch (score)

{

case 'A':

System.out.println("优秀");

break;

case 'B':

System.out.println("良好");

break;

case 'C':

System.out.println("中");

break;

case 'D':

System.out.println("及格");

break;

default:

System.out.println("不及格");

break;

}

}

}

12052bdb015f

SwitchTest

SwitchTest 程序 及 运行结果:

public class Switch省略break

{

public static void main(String[] args)

{

char score = 'B';

switch (score)

{

case 'A':

System.out.println("优秀");

case 'B':

System.out.println("良好");

case 'C':

System.out.println("中");

case 'D':

System.out.println("及格");

default:

System.out.println("不及格");

}

}

}

12052bdb015f

Switch省略break

以下是一个小例子:

活动安排,内有自动获取系统时间并提取周几,然后根据设置的周几输出要做的事情,可以修改系统时间来输出不同的活动安排。

ActionSchedule  程序 及 运行结果:

import java.util.*;

import java.text.*;

public class ActionSchedule

{

public static void main(String[] args)

{

// 获取系统当前时间

Date date = new Date();

//System.out.println(date); // 显示英文的日期

// 创建一个 DateFormat 的实例,DateFormat 的作用是把日期转换成人看的懂的格式的字符串

DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);

//System.out.println(df.format(date));  // 显示出来年月日  周几  2017年8月2日 星期三

String str = df.format(date);  // 输出 2017年8月2日 星期三

int spacePos = str.indexOf(" "); // 获取" "在前面字符串中的位置

// spacePos代表空格的位置,spacePos+1 代表空格后面的字符

// 截取从空格后面的字符开始,直到结束的字符串

String day = str.substring(spacePos + 1);

switch (day)

{

case "星期一":

System.out.println("去跑步");

break;

case "星期二":

System.out.println("王者荣耀找人开黑");

break;

case "星期三":

System.out.println("去找宝贝玩耍");

break;

case "星期四":

System.out.println("去lol");

break;

case "星期五":

System.out.println("去购物");

break;

case "星期六":

System.out.println("去健身");

break;

case "星期日":

System.out.println("睡觉");

break;

}

}

}

12052bdb015f

ActionSchedule

循环:while 、do while、for、for each

循环(loop):回圈

把一段重复的代码执行多次,直到满足某个条件为止。

为了在合适的时候,停止重复执行,需要让程序出现满足停止循环的条件。

while循环:

while( 返回 boolean 值的表达式)  // 只要 while 中表达式为 true,循环将会一直执行。

{

//  需要重复做的事情

}

如果循环体只有一条代码,可以省略花括号。

规则:如果省略了花括号,while 条件只控制到第一个分号(;)前面

建议:即使循环体只有一行代码,也包括花括号。

WhileTest 程序 及 运行结果:

public class WhileTest

{

public static void main(String[] args)

{

int i = 0;

while(i < 10)

{

System.out.println("i的值为: " + i++);

}

}

}

12052bdb015f

WhileTest

WhileError省略花括号 程序 及 运行结果:

public class WhileError

{

public static void main(String[] args)

{

int i = 0;

while(i < 10)

i ++;  //  先知循环本条语句,直到 i 为10 时 false,跳出循环,输出为 10

System.out.println("i的值为: " + i++);

}

}

12052bdb015f

WhileError

WhileError2 (while 后面有分号 陷阱) 程序 及 运行结果:

public class WhileError2

{

public static void main(String[] args)

{

int i = 0;

while(i++ < 10); // 同注意分号,但是此时i可以加到 10,然后false跳出循环(此时i为11)到 i++,最后输出12

//while(i < 10);  // 注意本句后面的分号,分号意思本句就结束,所以这是一个死循环

{

i ++;

System.out.println("i的值为: " + i);

}

}

}

do while 循环:

do

{

}while ( 返回 boolean 值的表达式)

这个与 while 相比,把循环放在前面。

先执行一次循环体,如果条件为 true ,执行下一次循环

对于 do while 来说,无论如何,循环至少会执行一次。

for 循环:

for( 初始化语句 ; 返回 boolean 值的表达式 ; 每次循环体执行完后执行的代码 )

{

}

“初始化语句”可以省略。

如果有“初始化语句”,只有循环开始之前,会执行一次“初始化语句”

初始化语句可以一次定义多个变量!

“返回 boolean 值的表达式”可以省略。

如果省略,意味着它的值永远是 true

“每次循环体执行完后执行的代码”可以省略。

如果有“每次循环体执行完后执行的代码” ,将在每次循环体执行完成之后,开始下一次循环体之前,执行该代码。

只要两个分号之间的表达式返回 true ,程序将执行循环体。

ForTest  程序 及 运行结果:

for(int i = 0;i < 10;i++)

{

System.out.println("i的值为" + i);

}

12052bdb015f

ForTest

ForTest2  程序 及 运行结果:

for(int i = 0;i < 10;i++)

{                                  // i = (int)(i*0.2)

System.out.println("i的值为" + (i *= 0.2));

// *=  强转小数为整型,所以不可能出现小数,所以结果一直为0

}

12052bdb015f

ForTest2

循环嵌套:

在循环里面,再放置循环——就是嵌套循环

把内层循环当成外层循环的一条语句即可。

循环嵌套  程序 及 运行结果:

int i = 0;

while(++i < 10)

{

System.out.println("进入外层循环");

for(int j = 0;j < 10;j++)

{

System.out.println("i的值是" + i + ",j的值是" + j);

}

System.out.println("外层循环的最后一行");

}

12052bdb015f

循环嵌套

控制循环的关键词:break、continue、return

break  完全结束一个循环本身。

continue    停止当前循环体的执行(相当于【忽略 continue 后的语句】),开始下一次循环体

如果 continue 位于循环体的最后一部分,它就是多余的

return    结束整个方法。  遇到 return ,方法就会结束执行。

break 、continue 后可以紧跟标号。

带标号的 break 用于结束标号所标识的循环。

带标号的 continue 用于忽略标号所标识的循环后面剩下的语句。

ContinueTest  程序 及 运行结果:

public class ContinueTest

{

public static void main(String[] args)

{

for(int i = 0;i < 10;i ++)

{

System.out.println("i的值是" + i);

if(i > 3)  // 当 i > 3 时,continue 执行,忽略后面的print语句,直接跳到 for

{

continue;

}

System.out.println("----------------");

}

}

}

12052bdb015f

ContinueTest

ReturnTest  程序 及 运行结果:

public class ReturnTest

{

public static void main(String[] args)

{

int i = 0;

while(++i < 10)

{

System.out.println("进入外层循环");

for(int j = 0;j < 10;j++)

{

for(int k = 0;k < 20;k++)

{

System.out.println("i的值是" + i

+ ",j的值是" + j

+ ",k的值是" + k);

if(k > 3)    //当 k > 3 时,执行 return ,结束整个方法

{

return;

}

}

}

System.out.println("外层循环的最后一行");

}

}

}

12052bdb015f

ReturnTest

LabelTest  程序(带标号的 break) 及 运行结果:

outer:

for(int i = 0;i < 10;i ++)

{

for(int j = 0;j < 10;j ++)

{

System.out.println("i的值为" + i + ",j的值为" + j);

if(j > 3)

{

break outer;//带标号的循环用于结束标号所在循环的循环

}

}

}  // 当 j = 4 时,执行  break outer,此时结束 标号 outer 所在的循环,即结束输出

12052bdb015f

LabelTest

ContinueLabel  程序(带标号的 continue) 及 运行结果:

outer:

for(int i = 0;i < 10;i ++)

{

for(int j = 0;j < 10;j ++)

{

System.out.println("i的值为" + i + ",j的值为" + j);

if(j > 3)

{

continue outer;//带标号的 continue 用于忽略标号所在循环的循环的剩下语句

}        //  当 j = 4时,执行 continue outer,忽略标号所在循环的循环剩下语句,即忽略后三个},直接又到了 for(int i = 0;i < 10;i ++)  循环,最终结果输出 50 次

}

}

12052bdb015f

ContinueLabel

ContinueLabel2 程序(带标号的 continue) 及 运行结果:

outer:

for(int i = 0;i < 10;i ++)

{

for(int j = 0;j < 10;j ++)

{

System.out.println("i的值为" + i + ",j的值为" + j);

if(i > 3)   //  注意,这里与上个程序的区别,j 换成 i !!!!!!!

{

continue outer;//带标号的 continue 用于忽略标号所在循环的循环的剩下语句

}    //  i = 4 时,输出 40 后判断 i>3,则忽略标号所在循环的循环的剩下语句,直接跳到 for(int i = 0;i < 10;i ++) 循环,i 加一 为 5 > 3, 以此类推,后面值输出   40,50,60,70,80,90  共输出 46 个值

}

}

12052bdb015f

ContinueLabel2

练习:

在控制台用 * 打印大小可控制的圆。

以上,未完

写在最后:

总结一下互联网行业的一些缩写,昨天 FE 小哥哥问我,你知道 FE 是啥吗,气氛一度迷之尴尬……

PM:(project manager)现一般指的都是产品经理

RD:(Research and Development)研发

如:软件RD工程师就是软件研发工程师,诸如php程序猿,Java程序猿,无论是爱疯的还是安卓的都是属于这一类别。偏向于后端的技术实现。

FE:(Front-End)前端,前端开发(Front-End Development)

FE是web前端研发、前端开发的意思!前端工程师基于需求根据视觉设计稿、交互设计稿,实现前端界面显示及交互行为的过程。

UE:(User Experience,简称UX或 UE)用户体验

UI:  (User Interface)用户界面。UI设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。

QA: (QUALITY ASSURANCE,中文意思是“质量保证”)测试

OP:(Operations)运维

DBA:(Database Administrator,简称DBA)数据库管理员

DB:既数据库(Database)。

今天周三,想想都一周了啊,时间过的真的快啊,马上要周六了哈哈,就又能见到腻了那~

打道回府,感冒好烦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值