JavaSE知识总复习(二)

程序逻辑控制

顺序结构

其实顺序结构没什么好讲的,但是如果没有系统学习过编程的同学也会有点懵;
顺序结构其实就是代码执行的顺序,即代码执行顺序是从上到下的执行;

        System.out.println("大家好");
        System.out.println("欢迎大家来到");
        System.out.println("我的博客");

		//程序执行结果:
		大家好
		欢迎大家来到
		我的博客

分支结构

分支结构就是根据不同的情况分出两条或多条的情况,举个例子:我今天本来是去学校的,但是因为我不舒服只能去了医院。这就是两条分支,正常情况下去学校,不正常情况下去医院;

分支结构主要有两个语句构成:if、switch

if语句

if语句有三种表达方式:
基本语法形式 1

		if(布尔表达式){
		
		}

基本语法形式 2

		if(布尔表达式){
		//如果布尔表达式为true则执行这里面的语句
		}else{
		//如果布尔表达式为false则执行else语句
		}

基本语法形式 3

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

		}else{
		
		}

在使用if语句时要注意的是,上述的if语句中的布尔表达式的结果必须是布尔类型,非true即false,不能有第三种情况,否则就会编译出错;

三者使用哪一种主要看你所要表达的意思是什么:

比如我要表达分数是否及格了呢?那么我只要判断分数有没有超过 60 即可,这种情况只需要一次判定,所以采用基本语法形式 1:

        int grade = 90;
        if(grade >= 60){
            System.out.println("及格了");
        }

如果grade不是90而是50呢,那不就没有办法判定了吗?所以上述的判定是有漏洞的,应该采用非黑即白判定方法——基本语法形式 2 :

        int grade = 90;
        if(grade >= 60){
            System.out.println("及格了");
        }else{
            System.out.println("没有及格");
        }

有人看到这样表示不行,这能判断及不及格没有,我还行知道成绩能不能算的上优秀,怎么办?那么就需要采用多分支判定了——基本语法形式 3:

        int grade = 20;
        if(grade >= 90){
            System.out.println("优秀");
        }else if(grade >= 80){
            System.out.println("良好");
        }else if(grade >= 60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }

结论:

  1. if语句的语法形式有三种,要根据需求不同采用不同的语法形式
  2. if语句的判定条件必须是布尔表达式
  3. 多分支if语句不会全部执行,当有一个满足条件并执行完毕后跳出整体if语句;

switch语句

	switch(整数|枚举|字符|字符串){
		case 内容1 : {
				内容满足时执行语句;
		[break;]
		}
		case 内容2 : {
				内容满足时执行语句;
		[break;]
		}
		...
		default:{
				内容都不满足时执行语句;
		[break;]
		}
	}

switch语句使用的较少,不多介绍;

        int day = 2;
        switch (day){
            case 1:
                System.out.println("星期一");
                break;
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            case 7:
                System.out.println("星期日");
                break;
            default:
                System.out.println("输入错误");
                break;
        }

根据 switch 中值的不同, 会执行对应的 case 语句. 遇到 break 就会结束该 case 语句.
如果 switch 中的值没有匹配的 case, 就会执行 default 中的语句.
我们建议一个 switch 语句最好都要带上 default.

结论:

  1. break不要遗漏,因为这样会使得多分支语句失去效用;
  2. switch中的值只能是整数、枚举、字符、字符串
  3. switch不能够执行复杂的条件判断

循环结构

循环结构是代码编写中经常使用的结构之一,什么是循环呢?循环就是在没有达到某个条件的情况下一直做某件事情或某个操作,比如上班,在没有到下班时间的情况下,就一直处理工作,一旦到达下班时间就停止;

循环结构需要满足一下三个条件:

  1. 拥有循坏开始的条件
  2. 拥有循环结束的条件
  3. 要更新循环以让其达到循环结束的条件

以上三个条件就是循环结构拥有的特征,但不排除特殊情况,后面会讲解;

循环结构分为三种:for、while、do{ }while,其中前两种用的比较多,第三种基本上不使用;

for语句

for语句是比较常用的语句之一,主要用于遍历数组、顺序表等

基本语法

		for(表达式1; 表达式2; 表达式3){
				循环体;
		}
  1. 表达式 1 用于初始化循环变量
  2. 表达式 2 表示循环结束的条件
  3. 表达式 3 是更新循环变量

写一个比较简单的for循环代码帮助理解

        for(int i = 1; i <= 10; i++){
            System.out.println(i);
        }

这是打印 1~10 的代码,其中 i 就是循环变量,int i = 1 就是在初始化循环变量,i <= 10 表示当 i > 10 时结束循环;i++ 就是在更新循环变量,而循环体就是在打印 i 的值;

while语句

基本语法格式

		while(循环条件){
			循环体;
		}

while语句将循环变量放在外部/内部,将更新循环变量放在循环内部,同样的一个代码来解释:

        int i = 0;
        int sum = 0;
        while(i < 10){
            sum = sum + i;
            i++;
        }
        System.out.println(sum);

int i = 0 初始化循环变量,i < 10表示循环结束的条件,i++是更新循环变量

do while(选学)

基本语法格式

		do{
			循环体;
		}while(循环条件);

do{ } while 这个循环结构比较特殊,它是把循环结束条件放到了循环体的后面,所以它能够保证程序至少执行一次,但是不建议大家使用,因为很容易混乱,并且如果while后面不加分号会导致编译错误;

break和continue

break:

break的功能是提前结束循环,往往和 if 在循环中搭配使用,使得达到某个条件直接跳出循环

        int i = 0;
        while(i < 10) {
            if (i == 5) {
                break;
            }
            System.out.println(i);
            i++;
        }

输出结果>>>

0
1
2
3
4

由此可以看到在 i == 5之前是可以正常进入循环执行打印语句的,而当 i == 5 时满足 if 语句开始条件。进入 if 语句中执行 break 语句跳出循环

continue:
continue的功能和break有点相似,其是跳出当前循环,注意是跳出当前循环而并非跳出循环

        int i = 0;
        while(i < 10) {
            if (i == 5) {
                i++;
                continue;
            }
            System.out.println(i);
            i++;
        }

输出结果>>>

0
1
2
3
4
6
7
8
9

由结果可见 5 不见了,说明当 i == 5的时候进入了 if 语句中执行了 continue从而跳出了当前循环;

在使用 continue 时要注意在 if 语句中加入更新循环变量语句再使用 continue,否则就会陷入死循环;

什么死循环呢?
死循环就是因为某个条件未达成使得循环进入僵持阶段,这个往往是没有更新循环变量所导致的,进入死循环之后不执行业务也不正常退出循环,这个对于目前我们来说是一个比较严重的情况;

但死循环在实际编程中往往还会使用到,比如服务器处理业务就是死循环,因为服务器一般都是 24 小时不停工作的;

输入输出

输出:
输出有三种方式:

System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出

代码实例

        System.out.println(i);
        System.out.print(i);
        System.out.printf("%d", i);

一般是使用第一种带换行的输出方法,但是还是要根据实际需求来使用不同的输出方法;
至于第三种的格式化输出和 C 语言有些像,其格式化字符串如下表:
在这里插入图片描述
这个表格没有必要记住,如果真的需要直接百度,程序员三大特性:面向需求编程、面向薪资编程、面向百度编程
在这里插入图片描述
输入:
Java输入的方法有很多,常用的就是使用 Scanner 读取字符串/整数/浮点数

		import java.util.Scanner;
		//创建对象
		Scanner scanner = new Scanner(System.in);
		int i = scanner.nextInt();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值