JAVA中的逻辑控制

简介: JAVA中的逻辑控制

在程序中,一般包含三种结构:①顺序结构②分支结构③循环结构

下面将对这三种结构进行分别叙述:

一.顺序结构

简而言之:顺序结构就是按照代码书写的顺序将代码一步一步执行。

例如:

0c437f9dfca542b3b70db2ca7398e40a.png

二.分支语句

2.1if语句

语法格式一:if(bool值表达式){


语句一;}

else{


语句二;}

需要注意的是:在c语言中0表示假,非零表示真,那么在c中的if中的条件意味着可以是任何值,而java不同,它有着自己独特表示真和假的变量值(即布尔变量),所以在if内的条件中,只能填bool类型的值。


语法格式二

if ( 布尔表达式 1 ){

// 语句 1

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

// 语句 2

} else {

// 语句 3

}

表达式 1 成立,执行语句 1 ,否则表达式 2 成立,执行语句 2 ,否则执行语句 3

例:

判断一个年份是否为闰年

public static void main(String[] args) {

   Scanner scan=new Scanner(System.in);

   System.out.println("请输入一个年份");

   int year= scan.nextInt();

   if((year%4==0&&year%100!=0)||year%400==0)

   {

       System.out.println(year+"年是闰年");

   }

   else

   {

       System.out.println(year+"年不是闰年");


   }

}

if语句中需要注意的问题:①分号问题

1d691ca1bc164f47be68b8a7208b2244.png

因为if条件后面有一个分号,所以代码块内的语句并不与if条件绑定,而是一个独立的代码块,所以即使if条件不满足,最后仍然打印hehe结果。

②垂悬else

int x = 10 ;

int y = 10 ;

if ( x == 10 )

if ( y == 10 )

System . out . println ( "aaa" );

else

System . out . println( "bbb");

else并不是根据哪个if与之垂悬而进行匹配,它是根据距离哪个if最近而对它进行匹配。

2.2switch语句

基本语法

int x = 10 ;

if ( x == 10 )

{

// 语句 1

}

else

{

// 语句 2

}

int x = 20 ;

if ( x == 10 );

{

System . out . println ( "hehe" );

}

// 运行结果

hehe

int x = 10 ;

int y = 10 ;

if ( x == 10 )

if ( y == 10 )

System . out . println ( "aaa" );

else

System . out . println ( "bbb" );

switch ( 表达式 ){

case 常量值 1 :{

语句 1 ;

[ break ;]

}

case 常量值 2 :{

语句 2 ;

[ break ;]

}

...

default :{

内容都不满足时执行语句 ;

[ break ;]

}

}

执行流程:

1. 先计算表达式的值

2. 和 case 依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到 break 时结束

3. 当表达式的值没有与所列项匹配时,执行 default

【 注意事项 】

多个 case 后的常量值不可以重复

switch 的括号内只能是以下类型的表达式:

基本类型: byte 、 char 、 short 、 int ,注意不能是 long 类型

引用类型: String 常量串、枚举类型

break 不要遗漏 , 否则会失去 " 多分支选择 " 的效果

Switch语句无法实现相对复杂的条件的表达

int day = 1 ;

switch ( day ) {

case 1 :

System . out . println ( " 星期一 " );

// break;

case 2 :

System . out . println ( " 星期二 " );

break ;

}

// 运行结果

星期一

星期二

switch 不能表达复杂的条件

// 例如 : 如果 num 的值在 10 到 20 之间 , 就打印 hehe

// 这样的代码使用 if 很容易表达 , 但是使用 switch 就无法表示 .

if ( num > 10 && num < 20 ) {

System . out . println ( "hehe" );

}

switch 虽然支持嵌套 , 但是很丑,一般不推荐。

三循环结构

3.1while

例:

public static void main(String[] args) {

   int n=1;

   int m=1;

   int num=1;

   int sum=0;

   while (n<=5){

       while(m<=n){

            num *=n;

            m++;

       }

       sum+=num;

       n++;

   }

   System.out.println(sum);

}

注意事项

1. 和 if 类似 , while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句 . 建议还是加上 { }

2. 和 if 类似 , while 后面的 { 建议和 while 写在同一行 .

3. 和 if 类似 , while 后面不要多写 分号 , 否则可能导致循环不能正确执行 .

此时 ; 为 while 的语句体 ( 这是一个空语句 ), 实际的 { } 部分和循环无关 . 此时循环条件 num <= 10 恒成立 , 导致代码

死循环了 .

4.2 break

break 的功能是让循环提前结束 .

代码示例 : 找到 100 - 200 中第一个 3 的倍数

执行到 break 就会让循环结束 .

4.3 continue

continue 的功能是跳过这次循环 , 立即进入下次循环 .

代码示例 : 找到 100 - 200 中所有 3 的倍数

int num = 1 ;

while ( num <= 10 ); {

System . out . println ( num );

num ++ ;

}

// 执行结果

[ 无任何输出 , 程序死循环 ]

int num = 100 ;

while ( num <= 200 ) {

if ( num % 3 == 0 ) {

System . out . println ( " 找到了 3 的倍数 , 为 :" + num );

break ;

}

num ++ ;

}

// 执行结果

找到了 3 的倍数 , 为 : 102 比特就业课

执行到 continue 语句的时候 , 就会立刻进入下次循环 ( 判定循环条件 ), 从而不会执行到下方的打印语句 .

4.4 for 循环

【 基本语法 】

表达式 1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次

表达式 2: 循环条件,满则循环继续,否则循环结束

表达式 3: 循环变量更新方式

【 执行过程 】

①②④③--->②④③--->②④③--->②④③--->②④③--->②④③--->...--->②为 false ,循环结束。

【 注意事项 】 ( 和 while 循环类似 )

1. 和 if 类似 , for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句 . 建议还是加上 { }

2. 和 if 类似 , for 后面的 { 建议和 while 写在同一行 .

3. 和 if 类似 , for 后面不要多写 分号 , 否则可能导致循环不能正确执行 .

4. 和 while 循环一样,结束单趟循环用continue,结束整个循环就用break

4.5 do while 循环 ( 选学 )

do {

循环语句 ;

} while ( 循环条件 );

【注意事项】

1. do while 循环最后的分号不要忘记

2. 一般 do while 很少用到 , 更推荐使用 for 和 while.


相关文章
|
2月前
|
Java
【详识JAVA语言】逻辑控制
【详识JAVA语言】逻辑控制
48 1
|
7月前
|
Java
java的逻辑控制1
java的逻辑控制
29 0
|
3月前
|
Java
【Java SE语法篇】4.程序逻辑控制
【Java SE语法篇】4.程序逻辑控制
|
9月前
|
Linux Windows
Java-逻辑控制(下)
Java-逻辑控制(下)
35 0
|
9月前
Java-逻辑控制(上)
Java-逻辑控制(上)
41 0
|
5月前
|
Java
Java学习 5.Java-逻辑控制
Java学习 5.Java-逻辑控制
35 0
|
6月前
|
Java Linux C语言
Java逻辑控制
Java逻辑控制
49 0
|
7月前
|
Java C语言
java的逻辑控制2
java的逻辑控制
14 0
|
9月前
|
Java 编译器 C语言
Java中的逻辑控制与方法(上)
Java中的逻辑控制与方法(上)
|
10月前
|
Java Linux C语言
【JAVA】java中的逻辑控制
【JAVA】java中的逻辑控制
70 0