JAVA学习——控制结构


一、顺序控制

1.介绍

程序从上到下逐行地执行,中间没有任何判断和跳转。
在这里插入图片描述

注意:Java中定义变量时使用合法的前向引用(即先定义再使用)。

int num1 = 12;
int num2 = num1 + 2;//正确

int num2 = num1 + 2;
int num1 = 12;//错误

二、分支控制if-else

1.介绍

让程序有选择地执行。

2.单分支

① 基本语法

if(条件表达式) {
		执行代码块;(可以有多条语句)
}

② 说明

  • 当条件表达式为true时,就会执行{ }的代码。如果为false,就不执行。
  • 特别说明,如果{ }中只有一条语句,则可以不用{ },但建议写上。

③ 单分支流程图

在这里插入图片描述

3.双分支

① 基本语法

if(条件表达式) {
	执行代码块1;(可以有多条语句)
} 
else {
	执行代码块2;(可以有多条语句)
}

② 说明

  • 当条件表达式为true时,就会执行代码块1。如果为false,就执行代码块2。
  • 特别说明,如果{ }中只有一条语句,则可以不用{ },但建议写上。

③ 双分支流程图

在这里插入图片描述

4.多分支

① 基本语法

if(条件表达式1) {
	执行代码块1;(可以有多条语句)
} 
else if(条件表达式2) {
	执行代码块2;(可以有多条语句)
} 
....//中间可以写多个else if语句
else {
	执行代码块n;(可以有多条语句)
}

② 特别说明

  • 多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有;
  • 如果有else,如果所有的条件表达式都不成立,则默认执行else代码块,即else是整个多分支最后一个判断入口
  • 多分支只要找到一个执行入口,执行后就结束,不再接着判断。

③ 流程图

在这里插入图片描述

5.嵌套分支

①介绍

在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支,外面的分支结构称为外层分支,建议不要超过3层。(可读性不好)

② 基本语法

if() {
	if() {
		//if-else...
	}
	else {
		//if-else
    }
}

5.switch分支结构

① 基本语法

switch(表达式){
	case 常量1:
		语句块1breakcase 常量2:
         语句块2break...
    case 常量n:
    	语句块n;
	break;
    deault:
    	default语句块;
    break//这个有没有无所谓了,因为是最后了,都会退出switch。
}

② 解读

  • switch关键字,表示switch分支;
  • 表达式对于一个值;
  • case 常量1:当表达式的值等于常量1,就执行 语句块1;
  • break:表示推出switch,若没有break,则忽视下面的case,一直执行下面的语句块;
  • 如果和 case 常量1 匹配,就执行语句块1,如果没有匹配,就继续匹配 case 常量2;
  • 如果一个都没有匹配上,就执行default语句块。

③ 注意事项及细节

  • 表达式数据类型,应和 case 后的常量类型一致,或者是可以自动转为可以相互比较的类型,比如输入的是字符,而变量是 int 。
  • switch(表达式)中表达式的返回值必须是:(byte、short、int、char、enum[枚举]、String)。
  • case子句中的值必须是常量,而不能是变量。
  • default子句是可选的,当没有匹配的case时,执行default。
  • break语句是用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break。

④ switch 和 if 的比较

  • 如果判断的具体数值不多,而且符合byte、short、int、char、enum[枚举]、String这6种类型。虽然两个语句都可以使用,建议使用swtich语句。
  • 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的适用范围更广。

三、for循环控制

1.基本语法

for(循环变量初始化;循环条件;循环变量迭代) {
	循环操作(可以多条语句);
}

2.说明

  • for关键字,表示循环控制;

  • for有四要素:

    • 循环变量初始化
    • 循环条件
    • 循环操作
    • 循环变量迭代;
  • 循环操作,这里可以有很多条语句,也就是我们要循环执行的代码;

  • 如果循环操作(语句)只有一条语句,可以省略{},建议不要省略。

3.细节

  • 循环条件是返回一个布尔值的表达式;
  • for(;循环判断条件;)中的初始化和变量迭代可以写道其它地方,但是两边的分号不能省略;
  • 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。

四、while循环控制

1.基本语句

循环变量初始化;
while(循环条件) {
	循环体(语句);
    循环变量迭代;
}

2.注意事项和细节

  • 循环条件是返回一个布尔值的表达式;
  • while循环是先判断再执行语句。

五、do-while循环控制

1.基本语法

循环变量初始化;
do {
	循环体(语句);
	循环变量迭代;
} while(循环条件)

2.说明

  • do while 是关键字;
  • 也有循环四要素,只是位置不同;
  • 先执行,再判断,就是说至少执行一次;
  • 最后有一个分号。

3.注意事项和细节说明

  • 循环条件是返回一个布尔值的表达式;
  • do…while循环是先执行,再判断,因此至少执行一次。

六、多重循环控制

  • 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while,do…while均可以作为外层循环和内层循环。(建议最多两层)
  • 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可以结束外层的当次循环,开始下一次的循环。

七、空心金字塔

//输出空心金字塔:
import java.util.Scanner;
public class PracticeLoop03{
	public static void main(String[] args) {
		Scanner myscanner = new Scanner(System.in);
		System.out.println("请输入行数:");
		int num = myscanner.nextInt();
		for (int i = 1;i <= num;i++) {
			for (int k = 1; k <= num - i;k++) {
				System.out.print(" ");
			}
			for (int j =1;j <= 2 * i - 1;j++) {
				if (j == 1 || j == 2 * i -1 || i == num) {
					System.out.print("*");
				}else{
					System.out.print(" ");
				}	
			}
			System.out.println("");
		}
	}
}

八、跳转控制语句-break

1.基本介绍

break语句用于终止某个语句块的执行,一般使用在switch或者循环[for,while,do-while]中。

2.基本语法

{       ...

        break;

        ...        

}

3.注意事项和细节说明

  • break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块。

  • 标签的基本使用

              label1:{     ......
    
              label2:        {     ......
    
              label3:                {     ......
    
                                              break;
    
                                              ......
    
                                         }
    
                                  }
    
                        }
    
              (1)break语句可以指定退出哪层;
    
              (2)label1是标签,名字由程序员指定;
    
              (3)break后指定到哪个label就退出到哪里;
    
              (4)实际开发中,尽量不使用标签;
    
              (5)如果没有指定break,默认退出最近的循环体。
    

九、跳转控制语句-continue

1.基本介绍

    ①  continue语句用于结束本次循环,据徐执行下一次循环;

    ②  continue语句出现在多层嵌套的循环与语句体中时,可以通过标签指明要跳过的是哪一层循环,和break的使用规则一样。

2.基本语法

{     ......

      continue;

       ......

}

十、跳转控制语句-return

1.介绍

return使用在方法,表示跳出所在的方法,在讲解方法的时候,会详细的介绍。如果return写在main方法,退出程序。

2.知识点

① 输出0.0 ~ 1.0之间的随机数

    Math.random()

② 输出1~100之间的随机数

    (int)(Math.random() * 100 ) + 1

③ 判断字符串内容是否相等

String name = "贾宝玉"System.out.println(name.equals("林黛玉"))System.out.println("林黛玉".equals(name))//两种写法都可,更推荐该方法,避免空指针。

结果输出false
  • 51
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值