我们为什么要用使用控制语句?

因为程序必须在执行过程中控制他的世界,做出正确的选择并执行。
(以下实现使用的是Java语言)

那么控制语句所涉及的关键字有那些呢?

if-else;
while;
do-while;
for;
return;
break;
continue;
“标签”(类似goto)
switch;

if-else

if-else可能是我们在写程序时最常用也是最基本的的选择性语句(其中else是可选的)
那么if-else怎么用呢?

if( Boolean - expression )
statement

或者

if( Boolean - expression )
statement;
else
statement;
那么就有一个值得关注的点了。if之后的括号里,我们只能放入布尔数据类型;也就是我们不能在括号内放入常量1或者0,也不能进行赋值;在Java里1和0是不能转换成boolean的true和false;
举个例子:
控制语句(基础分析向)
控制语句(基础分析向)

tips:如果说你想要写的控制语句只有两个出口的话,也就是要么A,要么B,那么我们可以用三目运算符
这样做既减少了代码量,也增强了可读性;
三目运算符写法如下

boolean-expression ? value0 :value1;

如果布尔表达式为,返回value0,如果为,返回value1
举个例子:
控制语句(基础分析向)

while,do-while,for

这三个关键字都是用来控制循环的,有时也把他们划分为迭代语句

while:语句会重复执行,直到布尔数据类型得到的结果为止
循环开始前,先判断一次布尔数据类型;在下一次迭代开始前,再去判断一次;

while(boolean - expression){
statement;
}
举个例子,从1加到10;
控制语句(基础分析向)
do-while: do-while用法与while极为相像,唯一的区别就是do-while至少会执行一次,即使布尔表达式第一次就计算为false;

do{
statement;
}while(boolean - expression);
同样的例子:控制语句(基础分析向)

for: for循环可能是我们最最最常用的迭代形式,再第一次迭代之前,先进行初始化,在进行条件测试,再每一次迭代结束时,进行某种形式的“步进”。
形式如下:

for(initialization ; boolean-expression; step){
statement;
}

初始化(initialization): 可以为空,也就是说我们可以把需要初始化的变量放在循环外去初始化;其次,初始化的变量可以有多个,用 号隔开即可;

布尔表达式(boolean-expression):当判断的变量为true时,执行循环,否则,跳出循环。

步进(step): 同初始化,也可以为空,使其变为死循环,也可以有多个变量去”步进“;

举个例子
控制语句(基础分析向)
提到for循环,那么我们也顺带提一下foreach语句;
foreach更多的是用在数组的循环遍历上;
他的写法,非常简单;

for(little box :Big box){
statement;
}

简单解释:Big box就是我们要去遍历的数组;little box就是一个临时存放数组里一个盒子的一个变量;而statement则是我们要对从数组里拿出来的这个数要去执行的语句;控制语句(基础分析向)
foreach会自动的去把Bigbox 里的每一项,挨个赋给little box,然后交给statement处理;

举例:遍历一个整型数组控制语句(基础分析向)
foreach语句不仅在录入代码时可以节省时间,更重要的是,它阅读起来也要容易的多。

return,break,continue;

return,break;continue是表示无条件分支,他们只是表示无需任何测试即可发生;

return有两个方面的用途:1.指定一个方法返回什么值;2.使当前方法退出并返回那个值;

举个例子:控制语句(基础分析向)

break和continue
在任何迭代语句的主体部分,都可以用break和continue去控制循环的流程。
break:强制退出循环,不执行循环中剩余的语句。
continue:停止当前迭代,退回循环起始处,开始下一次迭代。

举个例子:我们输出0-100之间,可以整除9的数,但我想让循环在81处停止。

控制语句(基础分析向)

“标签”(类似goto)

在说Java里的标签之前,我们先谈谈goto.
编程语言中一开始就存在goto关键词。goto起源于汇编语言的程序控制:若A成立,则跳到这里;否则跳到哪里。

但如果一个程序总是从一个地方跳到另一个地方们还有什么办法能识别程序的控制流程呢?当然,真正的问题并不在于goto,而是在于被滥用的goto。并且在少数情况下,goto甚至是控制流程的最佳手段。

在Java 中任然保留了goto关键字,但无法使用它,所以Java里没有goto

当然在Java里也有类似跳转的操作,这与break和continue有关,但他们其实不是一个跳转而是中断迭代的一种方法,之所以把它和goto一起讨论,是由于他们使用了相同的机制:标签

标签是后面跟有冒号的标识符,
示例: labele:

在Java里,标签起作用的唯一的地方就是刚好是在迭代语句之前。

举个例子:
控制语句(基础分析向)
在这个嵌套循环中,如果 j 的值步进到1那么直接退出到 lable1,根本不不执行第一层循环 i 的步进。

tips:在使用break和continue语句时要注意,他们跳到指定的循环顶部时,也会跳过步进
Java中使用标签的唯一理由,就是存在循环嵌套,而且想从多层嵌套中break或者continue

switch

switch有时也被归为选择语句。根据switch之后括号里的值,switch语句可以从一系列代码中选出一段去执行。当switch中的case没有所匹配的值时,执行default。
格式:

可以放置的数据类型有:char / byte / short / int / Character / Byte / Short / Integer / String / enum

switch( 数据类型)
{
case 同等数据类型 : 执行语句;break;
case 同等数据类型 : 执行语句;break;
case 同等数据类型 : 执行语句;break;
default : 执行语句;
}

示例:
控制语句(基础分析向)
tips:每一个case里必须要有break才能跳出switch,否则会向下执行,直到break或者default出现,才能跳出循环。

以上所有内容都能在《Java编程思想》中找到。

相关文章:

  • 2021-09-26
  • 2022-02-24
  • 2022-12-23
  • 2021-05-21
  • 2022-12-23
  • 2022-01-01
  • 2021-06-11
  • 2021-05-12
猜你喜欢
  • 2021-09-09
  • 2022-12-23
  • 2021-06-27
  • 2022-12-23
  • 2021-05-22
  • 2021-09-11
  • 2022-01-01
相关资源
相似解决方案