- 复合语句
- Java语言的复合语句是以整个块区为单位的语句,所以又称块语句。
- 复合语句由开括号“{”开始,闭括号“}”结束。
- 例题如下图。
- 条件语句
- 条件语句可根据不同的条件执行不同的语句,条件语句包括if条件语句与switch多分支语句。
- if条件语句可分为if语句if...else语句和if...else if多分支语句。
- if条件语句
- 可根据不同的条件执行不同的语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。
- 使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”。如果该表达式返回结果为true,则执行其后语句;如果为false,则不执行if条件之后的语句。
- if语句流程图与例题如下图。
- if...else语句
- if...else语句是条件语句中最常用的一种形式,它会针对某种条件有选择地做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。
- if后面“()”内的表达式的值必须是Boolean型的。如果表达式的值为true,则执行紧跟if语句的复合语句;如果表达式的值为false,则执行else后面的复合语句。
- 同if条件语句一样,如果if...else语句的语句序列只有一条语句,则可以省略该语句序列外面的“{}”。有时为了编程需要,else或if后面的“{}”中可以没有语句。
- if...else语句例题如下图
- if...else if多分支语句
- if...else if多分支语句用于针对某一事件的多种情况进行处理。
- 通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一条件则执行另一种处理”。
- 流程图与例题。
- switch多分支语句
- switch语句中表达式的值必须是整型,字符型,字符串类型或枚举类型,常量值1~n的数据类型必须与表达式的值的类型相同。
- switch语句首先计算表达式的值,如果表达式的计算结果和某个case后面的常量值相同,则执行该case语句后的若干个语句直到遇到break语句为止。此时,如果该case语句中没有break语句,将继续执行后面的case中的若干个语句,直到遇到break语句为止。若没有一个常量的值与表达式的值相同,则执行default后面的语句。default语句为可选的,如果它不存在,且switch语句中表达式的值不与任何case的常量值相同,switch语句则不做任何处理。
- 注意:同一个switch语句,case语句的常量值必须不相同。
- 例题如下图
- 流程图
- 循环语句
- 循环语句就是在满足一定条件的情况下反复执行某一个操作的语句。
- 常用的循环语句有while循环语句,do....while循环语句,for循环语句。
- while循环语句
- while语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。
- 当条件表达式的返回值为真时,则执行“{}”中的语句,当执行完“{}”中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。while循环语句的执行过程如图。
- do...while循环语句
- do...while循环语句与while循环语句类似,它们之间不同的是while语句为先判断条件是否成立再执行循环体,而do...while循环语句则执行一次循环后,再判断条件是否成立。也就是说,do...while循环语句“{}”中的程序段至少要被执行一次。
- do...while语句与while语句的明显区别是,do...while语句在结尾处多了一个分号。
- do...while循环语句过程如图。
- 例题如下
public class Repetition {
public static void main ( String args0){
int j=100;
int a;
int b;
int c;
do{
a=j/100;//百位
b=j%100/10;
c=j%10;
if(a*a*a+b*b*b+c*c*c==j){
System.out.println(j);
}
j++;
}while(j<=999);
- for循环语句
- for循环语句是Java语句程序中最有用的语句之一。
- 一个for循环可以用来重复执行某条语句,直到某个条件得到满足。
- for循环有两种语句,一种是传统的for语句,一种是foreach语句。
- for语句
- 传统的for语句中有三个表达式,语法如下。
for(表达式1;表达式2;表达式3){
语句序列
}
2.for语句的执行过程如下图:
3.例题如下图
- foreach语句
- foreach语句时for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称为foreach语句。
- foreach语句中的元素变量x,不必进行初始化,如下例子。
- 例题:使用 foreach 语句遍历整型数组即运算过程如下
创建类 Repetition ,在主方法中定义一维数组,并用 foreach 语句遍历该数组。
public class Repetition {
public static void main ( String args0){
int arr ]=(5,13,96);
System . out . printin ("一维数组中的元素分别为:");
// x 的类型与 arr 元素的类型相同。 for 循环依次取出 arr 中的值并赋给 x
for ( int x : arr ){
System . out . printin ( x );
运行结果如下:
一维数组中的元素分别为:
5 13 96
- 循环控制
- 包含两方面的内容,一方面是控制循环变量的变化方式,另一方面是控制循环的跳转。
- 控制循环的跳转需要用到break和continue两个关键字。
- break语句是跳出当前循环,而continue是跳过本次循环。
- break语句
- 使用break语句可以跳出switch结构。在循环结构中,同样也可以用break语句跳出当前的循环体,从而中断循环当前循环。
- 在三种循环语句中使用break语句的形式如下。
while(...) do for
{ { {
... ... ...
break; break; break;
... ... ...
} } }
3.例题如下图1,图3,图1的流程图如图2,图3的流程图如图4。注意:循环嵌套情况下,break语句只会使程序流程跳出包含它的最内层的循环结构,即只能跳出一层循环。
图1:
图2:
图3:
图4:
- continue语句
- continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后首先执行循环的增量部分,然后进行条件测试。
- 在while和do...while循环中,continue语句控制直接回到原条件测试部分。
while(...) do for
{ { {
... ... ...
continue; continue; continue;
... ... ...
} }while(...); }
3.例题和流程图如下图。