流程控制与数组—Java基础学习(二)

Java基础

流程控制与数组

一、流程控制

在这里插入图片描述

1.1顺序结构

程序从上到下逐行执行,中间没有任何判断和跳转。

1.2分支结构
1.2.1 if条件语句

格式:

if(布尔表达式){
    语句或语句块
}else if(布尔表达式){
    语句或语句块
}else{
    语句或语句块
}

示例:

    public static void main(String[] args) {
        int grade = 78;
        if (grade < 0) {
            System.out.println("成绩输入不合规,请重新输入!");
        } else if (grade < 60) {
            System.out.println("不及格");
        } else if (grade >= 60 && grade < 80) {
            System.out.println("良好");
        } else if (80 <= grade && grade <= 100) {
            System.out.println("优秀");
        }
    }

注:

if后面的括号里面只能是一个逻辑表达式,即表达式返回值只能是Boolean类型。

if 、else if 、else后面只有一行语句时可以省略“{}”,但是为了可读性一般不要省略。

在if语句中,总是把包含范围小的条件放在前面处理。如上面程序可以写为:

    public static void main(String[] args) {
        int grade = 800;
        if (grade < 0 || grade > 100) {
            System.out.println("成绩输入不合规,请重新输入!");
        } else if (grade >= 80) {
            System.out.println("优秀");
        } else if (grade >= 60) {
            System.out.println("良好");
        } else if (grade < 60) {
            System.out.println("不及格");
        }
    }
1.2.2 switch语句

switch语句由一个控制表达式和多个case组成。switch语句后面的控制表达式数据类型只能是byte,short,char,int (java SE 7开始支持String)和枚举类型,不能是Boolean类型。

语法:

switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

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

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

③ 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

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

示例:

    public static void main(String[] args) {
        String name = "张三";
        switch (name) {
            case "张三":
                System.out.println("这是张三");
                break;
            case "李四":
                System.out.println("这是李四");
                break;
            default:
                System.out.println("这人我不认识");
        }
    }
1.3循环结构

Java中有三种主要的循环结构: ①while 循环 ②do…while 循环 ③for 循环

1.3.1 while循环

语法格式:

while( 布尔表达式 ) {
  //循环内容
}

只要布尔表达式为 true,循环就会一直执行下去。

示例:

    public static void main(String[] args) {
        int i = 1;
        while (i < 10) {
            System.out.println(i + "\n");
            i++;
        }
    }

输出结果:

1
2
3
4
5
6
7
8
9
1.3.2 do…while 循环

语法格式:

do {
       //代码语句
}while(布尔表达式);

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。

示例:

    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println(i + "\n");
            i++;
        } while (i < 10);
    }

输出结果:

1
2
3
4
5
6
7
8
9
1.3.3 for 循环

语法格式:

for(初始化; 布尔表达式; 更新) {java
    //代码语句
}

for循环执行的次数是在执行前就确定的。最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。 执行一次循环后,更新循环控制变量。再次检测布尔表达式。循环执行上面的过程。

示例:

    public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {
            System.out.println(i + "\n");
        }
    }

输出结果:

1
2
3
4
5
6
7
8
9
增强 for 循环
for(声明语句 : 表达式)
{
   //代码句子
}

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

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

    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50};
        for (int x : numbers) {
            System.out.print(x + " ");
        }
        System.out.print("\n");
        String[] names = {"abc", "def", "ghi", "klm"};
        for (String name : names) {
            System.out.print(name + " ");
        }
    }

结果

10 20 30 40 50 
abc def ghi klm 
1.4 控制循环结构
break关键字

break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。

break 跳出最里层的循环,并且继续执行该循环下面的语句。

示例:

    public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {
            System.out.println(i + "\n");
            if (i == 3) {
                break;
            }
        }
    }

结果:

1

2

3

continue 关键字

continue 适用于任何循环控制结构中。作用是让程序立刻终止本次循环跳转到下一次循环的迭代。 在 for 循环中,continue 语句使程序立即跳转到更新语句。在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。

示例

    public static void main(String[] args) {
        for (int i = 1; i < 10; i++) {
            if (i == 3) {
                continue;
            }
            System.out.println(i + "\n");
        }
    }

结果:

1
2
4
5
6
7
8
9

二、数组类型

数组可用于存储多个数据,每个数组元素存放一个数据。再数组中要求所有的元素有相同的数据类型,即数组元素的类型是唯一的。

一旦数组被初始化完成,数组在内存中占用的空间将被固定下来,因此数组的长度不能改变。数组是一种引用类型。

声明数组变量
ataType[] arrayRefVar;   // 首选的方法
或
dataType arrayRefVar[];  // 效果相同,但不是首选方法

注:声明数组变量的时候不能指定长度。

创建数组(数组的初始化)

Java中数组必先初始化,即为数组的元素分配内存空间,为每个元素赋初值,然后才能使用。

数组的初始化有以下两种方式:

①静态初始化:显式指定数组中每个元素的初始值,由系统决定数组的长度。

dataType[] arrayRefVar = {value0, value1, ..., valuek};

②动态初始化:指定数组的长度,由系统为数组元素分配初始值。

dataType[] arrayRefVar = new dataType[arraySize];

示例:

    public static void main(String[] args) {
//        静态初始化
        int[] intArr;
        intArr = new int[]{1, 2, 3, 4, 5};
        String[] strArr;
        strArr = new String[]{"abc", "def"};
//        动态初始化
        int[] intArr1 = new int[5];
        String[] strArr1 = new String[5];
    }
使用数组
    public static void main(String[] args) {
//        初始化数组
//        静态初始化
        int[] intArr;
        intArr = new int[]{1, 2, 3, 4, 5};
//        动态初始化
        String[] strArr = new String[3];
//        使用数组
//        给动态初始化数组赋值
        strArr[0] = "Hello";
        strArr[1] = "word";
        strArr[2] = "java";
//        打印指定数组元素
        System.out.println("intArr数组的第一个元素:" + intArr[0]);
        System.out.println("strArr数组的第一个元素:" + strArr[0]);
//        遍历数组打印所有元素
        for (int i = 0; i < strArr.length; i++) {
            System.out.println("strArr1的第" + (i + 1) + "个元素是:" + strArr[i]);
        }
//        计算数组元素总和
        int total = 0;
        for (int i = 0; i < intArr.length; i++) {
            total += intArr[i];
        }
        System.out.println("数组intArr总和为:" + total);
    }

结果:

intArr数组的第一个元素:1
strArr数组的第一个元素:Hello
strArr1的第1个元素是:Hello
strArr1的第2个元素是:word
strArr1的第3个元素是:java
数组intArr总和为:15
foreach循环(数组的加强for循环)

语法格式:

for(type element: array)
{
    System.out.println(element);
}

示例:

public static void main(String[] args) {
    //        加强for循环
        int j = 1;
        for (String str : strArr) {
            System.out.println("strArr数组的第"+(j++) +"个元素是:"+str);
        }
}

结果:

strArr数组的第1个元素是:Hello
strArr数组的第2个元素是:word
strArr数组的第3个元素是:java
多维数组

格式如下(以二维数组为例):

 type[][] typeName = new type[typeLength1][typeLength2]; 

System.out.println(element);
}


示例:

```java
public static void main(String[] args) {
    //        加强for循环
        int j = 1;
        for (String str : strArr) {
            System.out.println("strArr数组的第"+(j++) +"个元素是:"+str);
        }
}

结果:

strArr数组的第1个元素是:Hello
strArr数组的第2个元素是:word
strArr数组的第3个元素是:java
多维数组

格式如下(以二维数组为例):

 type[][] typeName = new type[typeLength1][typeLength2]; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值