Java SE《基础篇》——(三)程序基础02

流程控制结构

  1. 程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。程序可以通过控制语句来对程序实现选择、循环、转向和返回等流程控制。
  2. 程序控制结构包括:顺序结构、分支结构、循环结构。
顺序结构

顺序结构程序就是按语句出现的先后顺序执行的程序结构。计算机按顺序逐条执行语句,当一条语句执行完毕,自动转到下一条语句。

如图:
这里写图片描述

示例:
int a = 11; //第一步
int b = 2; //第二步
int c = a+b; //第三步
System.out.println(“a+b的结果为:”+c); //第四步

分支结构
  1. 分支结构又称为选择结构。当程序执行到控制分支语句时,首先判断条件,根据条件表达式的值选择相应的语句执行(放弃另一部分语句的执行)。
  2. 分支结构包括单分支、双分支和多分支三种形式。

如图:
这里写图片描述

单分支
【语法格式】
if(布尔表达式){语句块;}
说明:当语句块为一条语句时,大括号可以省略。只有布尔表达式为true时,才进入if语句中。

【示例】
int age = 20;
if(age >= 18){
    System.out.println("成年人");
}

双分支
【语法格式】
if(布尔表达式){
    语句块;//if分支
}else{
    语句块;//else分支
}

【示例】
int age = 20;
if(age >= 18){
    System.out.println("成年人");
}else{
    System.out.println("未成年人");
}

多分支—1
【语法格式】
if(布尔表达式){
    语句块;
}else if(布尔表达式){
    语句块;
}else{
    语句块;
}

【示例】
int age = 20;
if(age >0 && age <=18){
    System.out.println("未成年");
}else if(age > 18 && age <=40) {
    System.out.println("青年");
}else if(age > 40&& age<=50) {
     System.out.println("中年");
}else if(age > 50) {
     System.out.println("老年");
}else{
     System.out.println("见鬼了");
}

多分支—2
【语法格式】

switch (表达式) {
        case1:
            语句;
            break;
        case2:
            语句;
            break;
        default:
            语句;
            break;
}

说明:
    - 表达式的值只能为:charbyteshortint类型、String、enum类型,其它类型均非法
    - break语句可以省略,但会出现switch穿透
    - default语句也可以省略,一般不建议省略,并且放置在最后

【示例】
public static void main(String[] args) {
     String type = "dog";
     switch(type) {
     case "cat":
          System.out.println("喵");
          break;//注意break
     case "dog":
          System.out.println("旺");
          break;
     case "sheep":
          System.out.println("咩");
          break;
     default:
          System.out.println("哇!");
     }
     System.out.println("switch执行结束!");
}

循环结构
  1. 当程序执行到循环控制语句时,根据循环判定条件对一组语句重复执行多次。
  2. 循环结构的三个要素:循环变量、循环体和循环终止条件。
  3. while、do…while、for三种循环。

如图:
这里写图片描述

1. while语句
【语法格式】
while(布尔表达式){
循环体; //一条或多条语句
}

【示例】
int i = 1;
while(i<=5) {
  System.out.println(i);
  i++;
}

2. do…while语句
【语法格式】
do {

  循环体;
}while(条件判断表达式);

【示例】
int i = 1;

do{
  System.out.println(i);
  i++;
}while(i<=0); //注意分号

3. for语句
【语法格式】
for(表达式1;表达式2;表达式3) {

  循环体; //一条或多条语句
}

【示例】
for (int i=1; i<=5; i++) {

  System.out.println(i);
}

4. break语句
强制退出某个循环体,结束循环语句的执行

【示例】
public static void main(String[] args) {
  for(int i=1; i<=10; i++) {
    System.out.println(i);
    if(i == 5){
      break; //会跳出当前循环
    }
  }
  //break跳到这里
}

5. continue语句
终止某次循环过程,跳过continue语下方未执行的代码,开始下一步循环过程

【示例】
public static void main(String[] args) {
  for (int i=1; i<=10; i++) {
    if (i == 5) {
      continue; //会跳该次循环,跳到i++代码处
    }
    System.out.println(i);
  }
}

6. 流程控制语句总结

Java语言的程序控制语句:

条件判断语句:if语句、switch语句。
循环执行语句:do while语句、while语句、for语句。
跳转语句:break语句、continue语句、return语句。

如图:

控制语句类型关键字作用
选择结构语句if、if else、else if
switch
通过开关机制,选择要执行的代码
循环结构语句for、while、do while通过循序机制,反复执行相同的代码段
改变语句执行序break、continue通过打断或继续机制,改变当前工码的执行顺序


三种循环结构的异同点:

* 用while和do…while循环时,循环变量在循环体之前初始化,而for循环一般在语句1进行初始化。
* while 循环和for循环都是先判断表达式,后执行循环体;而do…while循环是先执行循环体后判断表达式。也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执行。
* 这三种循环都可以用break语句跳出循环,用continue语句结束本次循环。

初识方法

释义
方法是组合在一起来执行操作语句的集合。

【方法作用】

  • 使程序变得更简短更清晰
  • 有利于程序维护
  • 提高程序开发效率
  • 提高代码重用性
方法创建与使用

【语法格式】

访问修饰符 返回值类型 方法名(参数列表){
    方法体
}

【方法分类】

根据方法是否带参、是否带返回值,可将方法分为四类

1.无参无返回值方法
2.无参带返回值方法
3.带参无返回值方法
4.带参带返回值方法

  • 无参无返回值方法
public void print(){
     System.out.println("大家好,我是我是papi酱");
     System.out.println("一个集美貌和才华与一身的女子");
 }
  • 无参带返回值方法
public int callForYou(){
     System.out.println("老铁,双击666!");
     return 666;
 }
  • 带参无返回值方法
public void printResult(int a, int b){
     int c = a + b;
     System.out.println("我只是打印结果而已,两数相加结果:"+c);
 }
  • 带参带返回值方法
public String ifAdult(int age){
     if(age >= 18){
         return "成年人";
     }else{
         return "未成年人";
     }
 }
递归方法

释义
程序自身调用自身的编程技巧称为递归

递归四个特性
1.必须有可最终达到的终止条件,否则程序将陷入无穷循环;
2.子问题在规模上比原问题小,或更接近终止条件;
3.子问题可通过再次递归调用求解或因满足终止条件而直接求解;
4.子问题的解应能组合为整个问题的解。

技巧
找到递归实现的递归部分和终止部分

斐波那契数列
Fibonacci: 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 ... ...
终止部分:F1=1,F2=1;
递归部分为:F(n)=F(n-1)+F(n-2),其中n>2

图解斐波那契递归过程
这里写图片描述

【求】:Fibonacci第n个数的值,其中n>2
【扩展】:使用循环应该怎么实现?

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值