您的位置:首页 > 编程语言 > Java开发

JAVA基础知识: 流程控制

2015-03-20 13:56 267 查看
一、流程控制

流程控制的概念

控制流程(也称为流程控制)是计算机运算领域的用语,意指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序。不论是在声明式编程语言或是函数编程语言中,都有类似的概念。

在声明式的编程语言中,流程控制指令是指会改变程序运行顺序的指令,可能是运行不同位置的指令,或是在二段(或多段)程序中选择一个运行。

流程控制的分类

Java流程控制包括顺序控制、条件控制和循环控制。


顺序控制,就是从头到尾依次执行每条语句操作。

条件控制,基于条件选择执行语句.

比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操作A,反之则执行操作B。

循环控制,又称为回路控制,根据循环初始条件和终结要求,执行循环体内的操作。

实际上,不管是各种控制,归根结底,就是做事情的步骤性的表现方式,有的是顺序的,有的是条件的,还有的是控制的。从广义上来思考,都是具有顺序性的完成工作。

Java的条件控制主要形式如下:

1)if(condition){statement}

2)if(condtion){statement1} else {statement2}

3)switch(condition)
{
case condition1:statement1;
break;
.....default:statement}

4)上述形式的组合与嵌套


Java的循环控制主要形式如下:

1)while(condtion){statement}

2)do {statement} while(condtion);

3)for(initialCondition;circleCondition;iterator{statement}

4)上述形式的组合与嵌套


二、说明

.IF语句

> 语法结构:

IF(判断条件){操作语句}


解释说明:如果判断条件是真的,就执行操作语句。

IF..else语句

语法结构:

IF(判断条件){操作语句} else {操作语句2}


解释说明:如果判断条件是真的,就执行操作语句,否则就执行操作语句2.

SWITCH..CASE语句

语句结构如下:

{ case 常量表达式1:语句1;

....


case 常量表达式2:语句2;

default:语句;


}

1.default就是如果没有符合的case就执行它,default并不是必须的.

2.case后的语句可以不用大括号.

3.switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.

4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.

For循环

for 循环的句法是:

for (初值表达式; boolean 测试表达式; 改变量表达式/步长){

   语句或块

  }

  执行顺序如下:   

1、首先运行初值表达式。

2、然后计算测试表达式,如果表达式为true,

执行语句或块;如果表达式为false,退出for循环。   

3、最后执行步长.

示例:

  for (int i = 0; i < 10; i++) {
     System.out.println("Java");
  }


do循环

do 循环的句法是:

  

  do {

  语句或块;

  }while (测试值表达式);

  

说明:

  先执行语句或块,然后再判断布尔表达式。与while语句不同,当布尔表达式一次都不为true时,while语句一开始判断就跳出循环,一次都不执行语句或块,而在do语句中则要执行一次。

  

While语句

while 循环的句法是:

>  while (布尔表达式) {   语句或块   }


说明:当布尔表达式为true时,执行语句或块,否则跳出while循环。

实例:

int i = 0;
while (i < 10) {
System.out.println("while语句");
i++;
}


foreach语句

foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便

foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。

foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for

每一个”的意思。实际上也就是这个意思。

foreach的语句格式:

for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}


实例:

//定义并初始化一个数组
int arr[] = {2, 3, 1};
System.out.println("----1----排序前的一维数组");
for (int x : arr) {
System.out.println(x); //逐个输出数组元素的值
}

//对数组排序
Arrays.sort(arr);

//利用java新特性for each循环输出数组
System.out.println("----1----排序后的一维数组");
for (int x : arr) {
System.out.println(x); //逐个输出数组元素的值
}
}


用于数组

for (type var : arr) {
body-of-loop
}
// 等价于
for (int i = 0; i < arr.length(); i++) {
body-of-loop
}


用于集合:

for (type var : coll) {
body-of-loop
}
// 等价于
for (Iterator<TYPE> iter = coll.iterator(); iter.hasNext();) {
type arr = iter.next();
body-of-loop
}


四、 特殊循环流程控制

下列语句可被用在更深层次的控制循环语句中:

   break [标注];

break 语句被用来从 switch 语句、循环语句和预先给定了 label 的块中退出,跳出离break 最近的循环。

  

   continue[标注];

  

continue 语句被用来略过并跳到循环体的结尾,终止本次循环,继续下一次循环。

五、习题

第一题:

有 36 人 36 块板砖,男人每人般 4 块,女人每人搬 3 块,小孩每 2 人搬 1 块。36 人都搬了一次,把砖刚好搬晚,问:几男几女的几个小孩?

第二题: 打印 1-100 的素数 (只能被 1 和他本身整除的数)

素数 : 只能被 1 和他本身整除的数.

第三题: 写个猜数字的小游戏:

生成一个 1-100 的随即数,让用户输入数字猜,如果猜错了 提示猜大了 还是猜小了,然后用户继续输入信数字猜,猜对了退出!


第四题:

出租车计费标准为:3 公里以内 10 元,3 公里以后每 1 公里加 2 元,每等待 5 分钟加 2 元。超过 15 公里,每公里加 3 元,打印出钱数。

第五题:

一电信公司的市内通话费计算标准如下:3 分钟 02 元,3 分钟后每增加一分钟加 0.1元,不足一分钟的按照一分钟计算。要求编写程序。给定一个通话时间(秒)。计算相应的费用。

第六题:

给定 3 个数,a b c ,输出最大数。

第七题:

用 scanner 输入一个数字,然后判断下数字大小,如果大于 0 输出为正数等于 0 输出为 0 否则输出为负数。

第八题:

用 scanner 输入一个分数,来判断分数等级:

>=90 打印 优秀

80-90 打印 良好

70-80 打印 中等

60-70 打印 及格

<60 打印 不及格

第九题:

循环打印 100 以内的数。

第十题:

循环打印 100 以内的所有奇数

第十一题:

用 scanner 输入一个数字,计算从 1 到这个数字的累加并打印出来。

第十二题:

打印

*

* *

* * *

* * * *

* * * * *

第十三题:

打印

*

***

*****

*******

*********

第十四题:

打印乘法表

第十五题:

打印乘法表:遇到 12 的倍数不显示,遇到 28 的倍数,本行终止。

第十六题:

打印 0-50 之间不是 5 的倍数和 7 的倍数

第十七题:

学习打印 1-100 的数字,遇到 7 的倍数或包含 7 的数字,不打印
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: