JAVA基础(02)控制语句

一、概述

  • 流程控制语句是用来控制语句执行顺序,完成一定功能;
  • 流程控制语句常用的是选择语句循环语句

二、选择结构

1、 if单选择结构

  • 如果if语句不写{},则只能作用于后面的第一条语句;
  • Math.random()该方法用于产生一个 0 到 1 区间的 double 类型的随机数,但是不包括1;

2、if-else双选择结构

  • 三目条件运算符可以替代 if else;

3、if-else if-else多选择结构

4、switch结构

(1)语法

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

(2)注意

  • 表达式的数据类型只能是 byte、short、char、int 四种整形类型,枚举类型和 String 类型;
  • switch 语句具有穿透性,即有一个 case 匹配之后,会一直往后执行,直到遇到 break;

三、循环结构

1、while循环

2、do-while循环

  • 循环体至少会执行一次;

3、for循环

  • for 循环的执行顺序;
  • 在控制表达式的 初始化 和 步进控制 部分,可使用由逗号分隔的表达式,这些表达式均会独立执行;
  • 初始化部分变量的数量任意,但都属于同一类型;
  • while(true) 与 for( ; ; ) 是无限循环;

4、嵌套循环

  • 任意的循环可以相互嵌套多层;

5、break 和 continue

  • 带标签的 break 和 continue;
public class BianLiang {
	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+" ");
		}
	}
}

6、语句块

(1)定义:{}括起来的,作为一个整体执行,规定了变量的作用域;

(2)注意:语句块支持嵌套,但是嵌套的语句块里不支持同名变量

7、方法

(1)实参的数目、类型和次序必须和形式参数列表匹配;

(2)方法调用传递参数时,传递的都是数据的副本;

(3)基本类型传递的是该数据值的copy值,所以对原来的值是不会有影响的;

(4)引用类型传递的是对象引用的copy值,指向的依然是同一个对象,所以传递引用类型会发生改变;

(5)方法的重载(overload)

  • 方法名相同,参数列表不同(形参类型、形参个数、形参顺序不同);
  • 只有返回值不同不构成方法的重载;
  • 只有形参的名称不同,不构成方法的重载(String str 和 String s 本质是一样的);

8、递归

(1)本质:就是自己调用自己;

(2)递归的核心问题:结束条件和什么时候调用自己,没有结束条件将陷入死循环;

(3)注意:递归的写法虽然很简单,但是执行效率不高,尤其是递归的次数过多的时候,可以使用迭代解决;

(4)应用:斐波那契数列的计算

//求n!
public static int diGui(int n){
		if(n == 1){
			return 1;
		}else{
			return n*diGui(n-1);
		}
	}

猜你喜欢

转载自blog.csdn.net/stanwuc/article/details/82899101
今日推荐