java流程控制(循环,分支)

一、循环结构:

1.while 循环,首先判断布尔表达式,为真才会执行。例如:

while(布尔表达式){

//循环内容

}

2.do..while 循环,首先执行一次do内的语句,在进行判断,为真再先继续走。例如:

do{

//代码语句

}while(布尔表达式)

3.for循环,执行顺序(首先执行初始化,再检测布尔表达式值,为真_循环体语句被执行,再执行更新,继续检测布尔表达式值…;检测布尔表达式值为假,循环终止并执行后面程序。)例如:

for(初始化;布尔表达式;更新){

//代码语句

}

4.增强for循环,例如:

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。

表达式:表达式是要访问的数组名,或是返回值为数组的方法。

for(声明语句 : 表达式){

//代码语句

}

break; 关键字:用来跳出整个语句块。多个循环跳出当前循环,并且继续执行循环下面的语句。

continue; 关键字:让程序立刻跳转到下一次循环迭代。在 for 循环中,continue语句使程序立即跳转到更新语句;在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

二、条件分支结构

1.if 语句:

1)if 语句:

if(布尔表达式){

//如果布尔表达式为true,则执行语句内容

}

2)if…else语句:

if(布尔表达式){

//如果布尔表达式为true

}else{

//如果布尔表达式为false

}

3)if…else if…else语句:

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

if(布尔表达式 1){

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

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

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

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

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

}else {

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

}

2.switch语句,例如:

switch(expression){

    case value : //语句 break; //可选

    case value : //语句 break; //可选

    //你可以有任意数量的case语句

    default : //可选

    //语句

}

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串类型了,同时 case 标签必须为字符串常量或字面量。

switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。

当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。

当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

switch 语句可以包含一个 default 分支,该分支必须是 switch 语句的最后一个分支。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

java运算符参考文档

计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:

  • 算术运算符

+(加) -(减) *(乘) /(除) %(取余/模) ++(自增) –(自减)

  • 关系运算符

==(等于) !=(不等于) >(大于) <(小于) >=(大等于) <=(小等于)

  • 位运算符

&(按位与) |(按位或) ^(按位非) ~(按位补/取反)<<(按位左移) >>(按位右移) >>>(按位右移补零)

  • 逻辑运算符

&&(与/短路逻辑运算符) ||(或) !(非)

  • 赋值运算符

= += -= …

  • 其他运算符

?:(条件运算符,例如:4 > 5 ? 前边为真的结果 : 前面为假的结果)instanceof(该运算符用于操作对象实例,检查该对象是否是一个特定类型[类类型或接口类型],例如:String name = “James”; 换行 boolean result = name instanceof String;//由于 name 是 String 类型,所以返回真)

java变量与常量的声明

Java语言支持的变量类型有:

1.局部变量:类的方法中的变量。

2.实例变量:独立于方法之外的变量,不过没有 static 修饰。

3.类变量:独立于方法之外的变量,用 static 修饰。

一、java局部变量:

  • 局部变量声明在方法、构造方法或者语句块中;
  • 局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
  • 访问修饰符不能用于局部变量;
  • 局部变量只在声明它的方法、构造方法或者语句块中可见;
  • 局部变量是在栈上分配的。
  • 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

二、java实例变量:

  • 实例变量声明在一个类中,但在方法、构造方法和语句块之外;
  • 当一个对象被实例化之后,每个实例变量的值就跟着确定;
  • 实例变量在对象创建的时候创建,在对象被销毁的时候销毁;
  • 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息;
  • 实例变量可以声明在使用前或者使用后;
  • 访问修饰符可以修饰实例变量;
  • 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见;
  • 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
  • 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。

三、类变量(静态变量)

  • 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外。
  • 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。
  • 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变。
  • 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。
  • 静态变量在程序开始时创建,在程序结束时销毁。
  • 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型。
  • 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化。
  • 静态变量可以通过:ClassName.VariableName的方式访问。
  • 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致。

*变量的声明方式:

1.int i,j;(不提倡这种风格,逐一声明每一个变量可以提高程序的可读性。)

2.int i; 换行 i = 1;(变量的声明和变量的初始化分开)

3.int i = 1;(变量的声明和初始化一起进行)

java常量的声明:

final double PI = 3.14;(关键字final表示这个变量只能被赋值一次。一旦被赋值后,就不能够再更改了。习惯上常量名使用全大写。)

java数据类型参考文档

java提供了8种基本数据类型:六种数字类型(四个整数型,两个浮点型),一种字符类型,一种布尔型。

1.byte:

1 byte(字节) = 8 bit(位)

  • byte 数据类型是8位、有符号的,以二进制补码表示的整数;
  • 最小值是 -128(-2^7)
  • 最大值是 127(2^7-1)
  • 默认值是 0
  • byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
  • 例子:byte a = 100,byte b = -50。

2.short:

  • short 数据类型是 16 位、有符号的以二进制补码表示的整数
  • 最小值是 -32768(-2^15)
  • 最大值是 32767(2^15 – 1)
  • Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
  • 默认值是 0
  • 例子:short s = 1000,short r = -20000。

3.int:

  • int 数据类型是32位、有符号的以二进制补码表示的整数;
  • 最小值是 -2,147,483,648(-2^31)
  • 最大值是 2,147,483,647(2^31 – 1)
  • 一般地整型变量默认为 int 类型;
  • 默认值是 0 ;
  • 例子:int a = 100000, int b = -200000。

4.long:

  • long 数据类型是 64 位、有符号的以二进制补码表示的整数;
  • 最小值是 -9,223,372,036,854,775,808(-2^63)
  • 最大值是 9,223,372,036,854,775,807(2^63 -1)
  • 这种类型主要使用在需要比较大整数的系统上;
  • 默认值是 0L
  • 例子: long a = 100000L,Long b = -200000L。
    “L”理论上不分大小写,但是若写成”l”容易与数字”1″混淆,不容易分辩。所以最好大写。

*补充:

  1. java 没有任何无符号(unsigned)形式的int、long、short、或byte类型;
  2. 在java中,整形的范围与运行java代码的机器无关;
  3. 从java7开始,加上前缀0b或0B就可以写为二进制数,例如:0b1001就是9。
  4. 从java7开始,还可以为数字字面量加下划线,例如:1_000_000(或 0b1111_0100_0010_0100_0000)表示一百万,加下划线更易读。

5.float:

  • float 数据类型是单精度(single-precision)、32位、符合IEEE 754标准的浮点数;
  • 最小值是:1.4E-45
  • 最大值是:3.4028235E38
  • float 在储存大型浮点数组的时候可节省内存空间;
  • 默认值是 0.0f
  • 浮点数不能用来表示精确的值,如货币;
  • 例子:float f1 = 234.5f。

6.double:

  • double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
  • 最小值是:4.9E-324
  • 最大值是:1.7976931348623157E308
  • 浮点数的默认类型为double类型
  • double类型同样不能表示精确的值,如货币;
  • 默认值是 0.0d
  • 例子:double d1 = 123.4。

*补充:

  1. 没有后缀F的浮点数值(如:3.14)默认为double类型;
  2. Java中float/double取值范围与精度

7.boolean:

  • boolean数据类型表示一位的信息;
  • 只有两个取值:true 和 false;
  • 这种类型只作为一种标志来记录 true/false 情况;
  • 默认值是 false
  • 例子:boolean one = true。

8.char:

  • char类型是一个单一的 16 位 Unicode 字符;
  • 最小值是 \u0000(即为0);
  • 最大值是 \uffff(即为65,535);
  • char 数据类型可以储存任何字符;
  • 例子:char letter = ‘A’;。