java基础学习日记(9)——控制语句

一、流程控制语句是用来控制程序中各语句执行顺序的语句。

1、顺序结构:代表“先执行a,在执行b”的逻辑。

2、选择结构:代表“如果……,则……”的逻辑。

3、循环结构:代表“如果……,则再继续……”的逻辑。

任何软件和程序,小练习到操作系统,本质都是由“变量、选择语句、循环语句”组成。

二、if选择结构和switch选择结构

(1)if单选择结构

if(布尔表达式){

    语句块

}

math类的使用:

①java.lang包中的math类提供了一些用于数学类的计算方法。

②math.random()用于产生一个0到1区间的double类型的随机数,但是不包括1。

③int i = int(6*math.random());产生0到5之间的随机整数。

(2)if-else双选择结构

if(布尔表达式){

    语句块

}else{

    语句块

}

(3)if-else if-else多选择结构:适用于条件特别多的时候。

if(布尔表达式){

    语句块

}else if{

    语句块

}else if(布尔表达式){

    语句块

}else{

    语句块

}

(4)switch结构:适用于多值的情况。(表示区间乐意用if-else来判断)

switch (表达式) {
case 值1: 
语句序列1;
[break];
case 值2:
  语句序列2;
[break];
      … … …      … …
[default:
  默认语句;]
}

①switch里面一定要有表达式

②结束循环语句时,需要break

③在jdk1.7之前只能使用整数和枚举类型的数据;之后可以使用字符串string类型的数据。


三、循环结构:分两大类,一类是当型,一类是直到型。

1、当型:当布尔表达式条件为true时,反复执行某语句;当布尔表达式的值为false时才停止循环,比如for和while。

2、直到型:先执行某语句,在判断布尔表达式,如果为true再执行某语句,反复执行后,直到布尔表达式条件为false时才停止循环,比如do-while循环。

3、while循环

while (布尔表达式) {
    循环体;

}

4、do-while循环:保证循环会至少执行一次。

do {
        循环体;
     } while(布尔表达式) ;

5、for循环

for (初始表达式; 布尔表达式; 迭代因子) {
      循环体;

}

(1)for循环语句时支持迭代的一种通用结构,是最有效最灵活的循环结构。

(2)逗号运算符,初始化多个变量的值。

(3)无限循环(骚气满满的循环~)

 for ( ; ; ) {    // 无限循环: 相当于 while(true)
            System.out.println("爱你到永远!");

        }

(4)初始化变量的作用域在for循环体内。


四、嵌套循环:在循环语句内,嵌套一个或者多个循环

1、System.out.println();表示打印换行。

2、break表示强行退出循环,不执行循环中剩余的语句。

3、continue表示终止本次循环。

4、带标签的break和continue

goto关键字很早在程序设计语言里面出现。尽管goto仍是java的一个保留关键字,但并未在java语言中得到正式的使用,java没有goto语句。

example:控制嵌套循环语句跳转

public class Test18 {
    public static void main(String args[]) {
        outer: for (int i = 101; i < 150; i++) {
            for (int j = 2; j < i / 2; j++) {
                if (i % j == 0){
                    continue outer;
                }
            }
            System.out.print(i + "  ");
        }
    }

}

outer标签,执行的时候直接从内循环跳到外循环。标签可以换成任意的飞保留关键字字符。


五、语句块(复合语句):用花括号括起来的任意数量的简单java语句。块确定了局部变量的作用域。块中的程序代码作为一个整体,是要被一起执行的。

1、不能在两个嵌套内声明两个相同的变量。

2、嵌套内可以使用外部变量,嵌套外不能使用内部变量。


六、方法:一段用来完成特定功能的代码片段,类似其他语言的函数。

1、方法用于定义该类或该类的实例的行为特征和功能实现。

2、面向对象中,整个过程的基本单位是类,方法是从属于类和对象的。

3、方法声明格式

[修饰符1  修饰符2  …]   返回值类型    方法名(形式参数列表){
    Java语句;… … …

 }

4、方法的调用方式

对象名.方法名(实参列表)

方法的详细说明

(1)形式参数:在方法声明时用于接收外界传入的数据。

(2)实参:调用方法时实际传给方法的数据。

(3)返回值:方法在执行完毕后返回给调用它的环境的数据。

(4)返回值类型:事先约定的返回值的数据类型,如无返回值,必须事先指定为void。

备注:方法不是static方法时,需要new一个对象。

(5)return的两个作用:①结束方法运行②返回值

注意事项:

(1)实参的数目、数据类型和次序必须和所调用的方法声明的形式参数列表匹配。

(2)return语句终止方法的运行并指定要返回的数据。

(3)java中进行方法调用中传递参数时,遵循值传递的原则(传递的都是数据的副本)。

(4)基本类型传递的是该数据值的copy值。

(5)引用类型传递的是该对象引用的copy值,但指向的是同一个对象。

5、方法的重载(overload)

重载的方法实际上是独立的、完全不同的方法,只是名称相同而已。

构成方法重载的条件:

(1)不同的含义:形参类型、形参个数、形参顺序不同。形参有所不同才构成重载。

(2)只有返回值不同不构成方法的重载。参数名称不同不构成重载。

6、递归结构

(1)递归的基本思想就是“自己调用自己”。

(2)利用递归可以用简单的方法来解决一些复杂的问题。

(3)递归的结构

①定义递归头。即:什么时候不调用自身的方法。如果没有头,将陷入死循环,也是递归结束的条件。

②递归体。即:什么时候需要调用自身方法。

优点:程序简单。

缺点:占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢得多。

(4)任何可以用丢给解决的问题都可以用循环来解决。在高性能的要求下尽量避免使用递归。




你可能感兴趣的:(java基础)