Java day 03(条件语句和循环语句)

条件控制语句

 

Java条件语句—if~else

一个语句包含一个布尔表达式和一条或多条语句。

If语句语法

if(布尔表达式) {

 //如果布尔表达式为true将执行的语句

}

如果布尔表达式为true,就执行if语句中的代码快,否则执行if语句后面的代码

if~else语句语法

 

if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。

if(布尔表达式){

//如果布尔表达式的值为true

}else{

 //如果布尔表达式的值为false

}

示例:

public class Test {

public static void main(String args[]){

 int x = 30;

if( x < 20 ){

System.out.print("这是 if 语句");

 }else{

System.out.print("这是 else 语句");

}

}

}

结果:

这是else语句

多分支if...else 语句

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。

使用 if,else if,else 语句的时候,需要注意下面几点:

if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。

if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。

一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行

if...else 语法格式如下:

if(布尔表达式 1){

//如果布尔表达式 1的值为true执行代码

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

//如果布尔表达式 2的值为true执行代码

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

 //如果布尔表达式 3的值为true执行代码

}else {

 //如果以上布尔表达式都不为true执行代码

}

public class Test {

public static void main(String args[]){

 int x = 30;

if( x == 10 ){

 System.out.print("X is 10");

}else if( x == 20 ){

 System.out.print("X is 20");

}else if( x == 30 ){

 System.out.print("X is 30");

}else{

System.out.print("这是 else 语句");

 }

}

}

运行结果:

X is 30

嵌套的 if…else 语句

可以在一个if else语句中使用if else语句

嵌套的 if…else 语法格式如下:

if(布尔表达式 1){

   //如果布尔表达式 1的值为true执行代码

   if(布尔表达式 2){

      //如果布尔表达式 2的值为true执行代码

}

public class Test { public static void main(String args[]){

int x = 30;

int y = 10;

if( x == 30 ){

 if( y == 10 ){

 System.out.print("X = 30 and Y = 10");

 }

}

 }

 }

运行结果:

X = 30 and Y = 10

下面的代码有两个 if 子句和一个 else 子句 。 那么,哪个 if 子句和这个 else 匹

配。这里的缩进表明 else 子句匹配第一个 if 子句 。 但是 , else 实际匹配的是第二个 if

子句 。 这种现象就称为悬空 else 歧义 ( dangling - else ambiguity ) 。 在同一个块中 , else 总是

和离它最近的 if 子句匹配 。

 

int i = 1,j = 2,k = 3;

              if(i > j)

                     if(i > k)

                            System.out.println("A ");

              else

                     System.out.println("B ");

 

Switch语句

switch 语句基于变量或者表达式的值来执行语句

过多地使用嵌套的 if 语句会使程序很难阅读

 Java 提供 switch 语句来有效地处理多重

条件的问题 。

语法格式

switch(变量){//byte short int char String 枚举

        case 选项1:

            执行语句1;

            break;

        case 选项2:

            执行语句2;

            break;

        ....

        case 选项n:

            执行语句n;

            break;

        default:

            执行语句n+1;

            break;

}

switch 语句遵从下述规则 :

① switch 表达式必须能计算出一个 char 、 byte 、 short , int 或者 String 型值 , 并且必

须总是要用括号括住 。

②选项必须与 switch 表 达 式 的 值 具 有 相 同 的 数 据 类 型 。 注意 :

选项都是常量表达式 , 也就是说这里的表达式是不能包含变量的 , 例如 , 不

允许出现 1 + X 。

③ 当 switch 表达式的值与 case 语句的值相匹配时 , 执行从该 case 开始的语句 , 直到

遇到一个 break 语句或到达该 switch 语句的结束 。

④ 默认情况 ( default ) 是可选的 , 当没有一个给出的 case 与 switch 表达式匹配时 ,

用来执行该操作 。

⑤ 关键字 break 是可选的 。 break 语句会立即终止 switch 语句 。

 

循环结构语句:

循环语句

2、循环语句

1、while循环语句

2、do-while循环语句

3、for循环语句

4、foreach循环语句(Java5以后加的循环语句)

循环语句主要解决什么问题?

    主要解决的是重复执行的代码

    避免了代码冗余方便代码维护

        循环的四要素:

            1.循环的初始化

            2.循环的继续条件(结束条件)

            3.循环的循环体(需要将那些部分进行循环操作)

            4.循环的步长,周期,间距

for语句 主要处理循环次数已知的情况下

            for(1初始化;2继续条件; 4步长){

                3循环体 

            }

for( ; ;){}小括号当中的两个分号不能少,如果什么都没有写表示无限循环。

 

关于 for 循环有以下几点说明:

最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。

然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。

执行一次循环后,更新循环控制变量。

再次检测布尔表达式。循环执行上面的过程。

while循环语句

注:while循环在条件为真的情况下,重复的执行语句。

语法:

while(循环继续条件){

//循环体

语句(组);

用于控制循环的附件条件;

}

 

              int score = 0;

              int i = 1;

              //循环语句

              while(i <10) {

                     score += i;

                     i ++;//控制循环的附加条件

              }

              System.out.println("score is " + score);

 

do-while循环语句

注:do-while 循环和while循环基本一样,不同的是它先执行循环体一次,然后判断循环继续条件。

do-while循环是while循环的变体。如果循环中的语句至少执行一次建议使用do-while循环。

语法:

do{

//循环体

语句(组);

}while(循环继续条件);

注意在写完循环继续条件后要加“ ;”。

int data;

              int sum = 0;

              Scanner input = new Scanner(System.in);

              //循环语句

              do {

                     System.out.print("Enter an integer(the input ends if it is 0):");//当输入0是循环结束

                     data = input.nextInt();

                     sum+=data;

              }while(data !=0);

              System.out.println("sum is " + sum);

While循环和for循环的比较

while循环和for循环都被称为前测循环,因为继续条件在循环体执行之前检测的;而do-while循环固然就叫后测循环,原因与前两个刚好相反。

这三种循环语句并没有什么好坏之差,只是各有各更适合的应用场景而已。在敲代码时建议使用自己觉得最自然的循环

 

如果已经知道循环要重复的次数,就采用for循环;如无法确定重复次数,就采用while循环;如检验继续条件前需要执行循环体,就用do-while循环代替while循环。

 

在数组中要读取数组的各个元素一般使用for循环,因为清楚

 

foreach循环语句

在java1.5中java开发者又新增了一个循环语句——foreach循环语句:for语句的特殊简化版本,主要执行遍历功能的循环。

foreach循环语句是java1.5的新特征之一,在遍历数组、集合方面,foreach为开发者提供了很大的方便。

foreach循环语句的语法格式如下:

 

for(类型 变量名 :集合){

语句块;

}

 

其中,“类型”为集合中元素的类型,“变量名”表示集合中的每个元素,“集合”是被遍历的集合对象或数组**。每执行一次循环语句,循环变量就读取集合中的一个元素。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值