java基本语法2--流程控制/布尔逻辑/选择语句/循环语句/跳转语句

版权声明:本篇文章由IT_CREATE整理 https://blog.csdn.net/IT_CREATE/article/details/81987027

流程控制

程序从main()方法的第一条语句开始执行,随后一条一条地执行后续的语句,直到到达程序的终点——main()方法的末尾。

然而,在程序设计时,我们经常需要改变程序的控制流程,也就是语句的执行顺序。有三种基本技术可以改变程序的控制流程:

  • 调用方法。调用方法将导致控制流程离开当前方法,转移到被调用的方法。例如,当我们调用println()方法时,控制流程离开main(),转到println(),并且在println()方法执行完成时返回main()方法。我们将在第五章《方法》中详细讨论方法。
  • 选择。Java中有两种做出选择的机制:if/else语句和switch语句。三目运算符也可以用于选择,但是它通常只是if/else的一个简写版本。
  • 循环。Java中有三种循环语句:for循环、while循环、do/while循环。

选择和循环语句之所以被称为控制结构,是因为我们可以用它们来控制程序流程。所有的控制结构都包含了某种类型的布尔判断,所以我们首先来了解一下什么是布尔逻辑。

布尔逻辑

布尔逻辑指将两到多个布尔表达式组合为单个布尔表达式。在组合布尔表达式时,有四种类型的逻辑:

  • 和。只有在组合表达式的每个部分都为真的时,组合表达式才会为真。
  • 或。只要一个组合表达式中有一个部分为真,组合表达式就会为真。
  • 异或。如果一个组合表达式中有一个部分为真,而另一个部分为假,那么组合表达式就为真。同时为真,或者同时为假,都是假
  • 非。对一个布尔表达式取反。

布尔运算符

布尔运算符

运算符

语法

短路和

&&

&

短路或

||

|

异或

^

!

 

&与&&的异同点(按位与&和逻辑与&&)

相同点:二者都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则为false。

不同点:在使用&进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用&&进行运算时,当左边为false时,右边的表达式不会进行运算,因此&&被称作短路与。同时&是位运算符,会参与数值计算,将两边对应的数值转换成二进制进行与位运算。

注意

  1. &&两边放置的类型只能是各自结果为布尔的类型。

例子:a>b &&a>c   可以看出运算符&&两边的结果是布尔类型(a>b只有两个值,ture或false;a>b同样的道理)

     2. &两边可以放置数值、字符、布尔类型、计算表达式

 

|与||的异同点(按位或|和逻辑或||

相同点:二者都表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为false时,其结果才为false。

不同点:同与操作类似,||表示短路或,当运算符左边的值为true时,右边的表达式不会进行运算。同时|是位运算符,会参与数值计算,将两边对应的数值转换成二进制进行或位运算。

注意

  1. &&两边放置的类型只能是各自结果为布尔的类型。

例子:a>b || a>c   可以看出运算符&&两边的结果是布尔类型(a>b只有两个值,ture或false;a>b同样的道理)

     2. &两边可以放置数值、字符、布尔类型、计算表达式

 

异或(^)

java的位运算符中有一个叫异或的运算符,用符号(^)表示,其运算规则是:两个操作数的位中,相同则结果为0,不同则结果为1。现将两个数转换成二进制进行异或运算,对二进制

上的每位进行异或运算,最后将结果转换成十进制。

例:i ^ j = 13.

i=15转成二进制是1111,j=2转成二进制是0010,根据异或的运算规则得到的是1101,转成十进制就是13.

 

逻辑非(!)

!则是一个一元运算符,运算对象是boolean类型的,若运算对象为true则返回false,若运算对象为true则返回false

 

位运非(~)

非运算符用符号“~”表示,其运算规律如下:

如果位为0,结果是1,如果位为1,结果是0,下面看一个简单例子。
public class data15
{
public static void main(String[] args)
{
int a=2;
System.out.println("a 非的结果是:"+(~a));
}
}

 

选择语句

单分支语句块

 

双分支语句块

语句格式:

If(条件表达式){

语句块}

else{

语句块}

  • 首先执行if条件表达式,如果表达是为真,则执行语句块内容,否则执行else中的语句块

 

多分支语句块

 

Swith语句

switch语句允许变量与多个值进行相等性检测,每个值被一个case语句语句调用和检测。一个switch语句的语法一般是如下形式:

 

switch(变量){  

  case 值 :

    //语句

    break;          //optional

  case 值 :

    //语句

    break;          //可选

    //可以有很多case语句

  default :          //可选

    //语句

}

如下的的规则适用于switch语句:

  • switch语句中检测的变量只能是32位或更小的整数值,也就是说只能是byte、short、int和char类型(注:JDK7.0以后,变量可以是String类型)。
  • 在一个switch语句中可以有很多case语句。每个case后跟一个用于比较的值和一个冒号。
  • case后的值必须是与switch中的变量相同的数据类型,并且必须是常量或字面量。
  • 当变量的值等于case后的值时,该case语句后的语句开始执行,直到遇到break语句。
  • 当遇到break语句时,switch语句结束,控制流程跳转到该switch语句的下一行。
  • 并不是所有case语句中需要包含一个break语句。如果没有break语句,控制流程继续执行到下一个case语句,直到遇到break语句。
  • 一个switch语句可以有一个可选的default条件,一般出现在switch语句的末尾。如果所有case条件都是false,那么default条件可以用于执行某种任务。在default条件中不需要break语句。

注:在java1.7版本后string类型也可以放进swith

 

循环语句

Java语言同样继承了C语言的while循环、do/while循环和for循环语句。

 

While循环

while循环是一种允许重复执行某项任务的控制结构,其语法形式为:

 

while(布尔表达式) { 

  //语句

}

当程序流程执行到一个while循环时,首先检测布尔表达式。如果该布尔表达式为true,就执行循环体内的语句。控制流程然后又回到布尔表达式,再次检测。如果表达式还是为true,就再次执行循环体内的语句。这种处理过程一直重复,直到布尔表达式为false为止。

例如:

 

int i = 0;

while(i > 10) {

  System.out.println("你永远看不到这个输出。");

  i++;

}

当i大于10的时候跳出循环。

 

do-while循环体

 

for循环

如下是for循环中的控制流程:

  • 初始化步骤首先执行,而且仅执行一次。这个步骤允许我们声明并初始化任何循环控制变量。这个部分不是必须的,可以留为空白,但是分号必须有。
  • 下一步,计算布尔表达式。如果表达式为true,循环体就被执行;如果为false,循环体就不执行,控制流程跳到for循环外的下一条语句。
  • 在for循环体执行之后,控制流程跳回更新语句。这条语句允许我们更新任何循环控制变量。该语句可以留为空白,但是在布尔表达式后必须有一个分号。
  • 布尔表达式现在再次被计算。如果表达式为true,循环执行,过程重复(先是循环体,然后是更新步骤,然后是布尔表达式)。在布尔表达式为false后,for循环终止。

 

break和continue

猜你喜欢

转载自blog.csdn.net/IT_CREATE/article/details/81987027