美文网首页
Java开发 流程控制语句【学习篇3】

Java开发 流程控制语句【学习篇3】

作者: iOS_PM_WEB_尛鹏 | 来源:发表于2020-04-21 17:22 被阅读0次

【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢迎各路豪杰点评改进!
{\color{#3f48cc}{\pmb{点击右上角小【1】快速预览本文内容}}} [1]

🔥知识点内容【流程控制语句:条件分支语句、循环语句】

🔓1. 条件分支语句【if、switch/case】

1.1、if语句 [2]
if(表达式){ 当表达式结果为真,所执行的代码 }
表达式中返回的是布尔值

image.png

if(表达式){ 表达式为真执行代码 } else { 表达式为假执行的代码 }

image.png
int age = 10;
if (age > 18) {
    System.out.println("你已经成年了!");
}else {
    System.out.println("小朋友,你妈妈叫你回家吃饭啦!");
}

if(条件1){ 条件1为真执行的代码 } else if(条件2){ 条件2为真执行的代码 }

Scanner sc = new Scanner(System.in);
// 输入菜名选择序号 select
int select = sc.nextInt();
if (select == 1) {
    System.out.println("蒸羊羔");
}else if (select == 2) {
    System.out.println("皮蛋豆腐");
}else if (select == 3) {
    System.out.println("大馒头");
}else if (select == 4) {
    System.out.println("燕窝");
}else {
    System.out.println("选择错误,本店没有此菜!");
}

可以使用多个if语句判断 但是每个条件 不论是否满足 她都要去判断一边,if-else if形式,那么如果有一个条件满足 其他的条件就不去看

1.2、switch语句 [3]
有时候分支是根据常量值进行判断的,这时候虽然可以使用if/else来实现,但是用switch/case更为清晰;

Scanner sc = new Scanner(System.in);
// 输入菜名选择序号 select
int select = sc.nextInt();
switch(select) {
    case 1:System.out.println("蒸羊羔");break;
    case 2:System.out.println("皮蛋豆腐");break;
    case 3:System.out.println("大馒头");break;
    case 4:System.out.println("燕窝");break;
    default:System.out.println("选择错误,本店没有此菜!");break;
}

Break:在switch作用,跳出swtich语句
switch/case中的表达式只能使用规定的基本数据类型
JDK1.5前可以使用:
基本数据类型byte
基本数据类型short
基本数据类型int
字符型char
不能使用:基本数据类型float、double、long、boolean
JDK5之后,switch表达式类型新增加支持:枚举(enum)
JDK7之后,switch表达式类型新增加支持:String


🔓2. 循环语句【for、while、do while】
2.1、for循环 [4]
1)语法
for(初始化语句;判断条件语句;控制语句){
循环体语句块;
}
具体代码如下所示:

int a;
for(int a=0; a<5; a++){
  System.out.println("a="+a);
}

执行步骤:
1、初始化a为0;
2、判断a<5的返回值为true,所以执行一次循环体;打印a=0;
3、运行控制语句a++,a变为1;
4、判断a<5的返回值为true,再执行一次循环体;打印a=1;
5、运行控制语句a++,a变为2;
循环4-5步骤,直到打印a=4后,a变为5
6、判断a<5返回false,则循环结束,跳出循环体。

即最终循环执行输出的结果:
a=0
a=1
a=2
a=3
a=4

2)经典案例:for循环的应用

  • 求1~100之间所有整数和
int sum = 0;
for(int i = 1; i < 100; i ++) {
    sum += i;
}
System.out.println("1~100的和是:" + sum);
  • 求1-100之间所有奇数的和
int sum = 0;
for(int i = 1; i < 100; i+=2;) {
    sum += i;
}
System.out.println("1~100奇数的和是:" + sum);
  • 求阶乘
int n = 6; // 假设求6的阶乘吧
int result = 1; //阶乘的结果值
for(int i = n; i >= 1; i --) {
    result *= i;
}
System.out.println(n + "的阶乘是:",result);
  • 如一个数是四位数abcd,该四位数满足条件:(ab+cd)*(ab+cd)=abcd;
    分析:
    将四位数的百位和千位ab,求出;再将十位和各位cd,求出
    abcd / 100 ---> ab
    abcd % 100 --->cd
  • 求水仙花数【3位数abc,a^3+b^3+c^3=abc】
for(int i = 100; i <= 999; i ++) {
    int b = i / 100; // 百位上的数字
    int s = i / 10 % 10;// 十位上的数字
    int g = i % 10;// 个位上的数字
    // 验证水仙花数公式
    if((b * b * b + s * s * s + g * g * g) == i) {
        System.out.println("水仙花数为:" + i);
    }
}

3)循环嵌套

  • 打印 99 乘法表
for(int j = 1; j < = 9; j ++) {
    for(int i = 1; i <= j; i ++) {
        System.out.println(i + "*" + j + "=" + (i * j) + "\t");
    }
    System.out.println(); // 相当于换行了...
}
  • 打印等腰三角形
int n = 4;
for(int i = 1; i <= 4; i ++) {
    for(int m = 1; m <= n-i; m++) { // 每一行显示的空格 = 总行数 - 当前行数
        System.out.print(" ");
    }
    for(int j = 1; j <= 2 * i - 1; j++) {// 显示*的数 就是 行数*2 -1
        System.out.print("*");
    }
    System.out.println();// 相当于换行
}

小知识点:
System.out.println(“”) 打印内容 并且 换行
System.out.print(“”)打印内容 不换行
“\t”:制表符 键盘Tab

2.2、while循环 [5]
1)语法
while(判断条件语句){
循环体语句块;
控制语句;
}
将for循环三个表达式拆分,初始化放在while 前面初始化 判断语句放入到while的()里面,控制语句放入到while的{}

具体代码如下所示:

int b=0;
while( b<5 ){
  System.out.println("b="+b);
  b++;
}

2)while循环的应用

  • 求1~100的和
int i = 1;
int sum = 0;
while(i < 100) {
  sum += i;
  i ++;
}
System.out.println("1~100的和是:" + sum);

小知识点:System.exit(0);退出系统

  • 无限循环(死循环)
while(true) {
    System.out.println("----------欢迎来到尛鹏大酒店----------");
    System.out.println("1、凉菜");
    System.out.println("2、热菜");
    System.out.println("3、主食");
    System.out.println("4、汤");
    System.out.println("0、退出");
    System.out.println("----------------------------------");
    System.out.println("请选择:")
    // 创建Scanner对象
    Sanner sc = new Scanner(System.in);
    // 接收一下选择的数字
    int select = sc.nextInt();
    switch(select) {
        case 1:System.out.println("蒸羊羔");break;
        case 2:System.out.println("皮蛋豆腐");break;
        case 3:System.out.println("大馒头");break;
        case 4:System.out.println("燕窝");break;
        default:System.out.println("选择错误,本店没有此菜!");break;
    }
}
Q:for(;;){} 这样的语句会编译通过吗?如果通过,是个什么样的循环?
A:可以编译通过,死循环 相当于
While(true){
}

3)for、while 的使用场景区分

for的使用:当我们知道循环次数的时候;
while的使用:当不清楚循环次数的时候;

2.3、do while循环 [6]
1)语法
do{
循环体语句块;
控制语句;
} while(判断条件语句) ;

具体代码如下所示:

int c=0;
do{
System.out.println("c="+c);
c++;
}while(c<5);
image.png

2)while 与 do while的区别

如果条件都为真,两者结果没有区别
如果条件为假,do-while 至少会执行一次循环体,while不会执行循环体
Do-while:先执行循环体,再去进行判断
While : 先判断,再去执行循环体

//------------↓↓↓ while ↓↓↓------------
int m = 12;
while(m <= 10) { 
  System.out.println("while------"+m);
  m ++;
}
// 输出结果:嘛也没有

//------------↓↓↓ do while ↓↓↓------------
int i = 12;
do {
  System.out.println("do------"+i);
  i ++;
}while(i <= 10);
// 输出结果:
// do------12

🔓3. 循环关键字【continue、break】[7]

continue

在循环控制语句的循环体中,可以使用continue语句,表示不再继续循环体后面的代码,继续下一次循环
即:在循环中遇到了continue,循环就不会继续执行当前关键字下面的其他循环内容,继续执行下一次循环(停止当前次循环,继续下一次循环)

break

在循环控制语句的循环体中,可以使用break语句,表示终止当前循环,跳出循环体
即:循环终止

🔓4. 多重循环跳出【加标号】[8]

可以在for、while、do前用合法标识符加标号
用break标号;语句终止指定的循环;
Break+标号形式 终止指定层次的循环
Continue+标号形式 跳出指定层次的循环 继续下一次循环

loop:    for(int i = 1; i <= 5; i ++) {
            for(int j = 1; j <= 5; j ++)  {
                if(j == 2) {
                    continue loop;
                    // break loop;
                }
                System.out.println("i = " + i + "\t  j=" + j);
            }
            System.out.println("-------第" + i + "次外层循环结束-------")
         }

🔓4. 综合案例 - 实战·了解 [9]

  • 百钱买百鸡
/* 3文钱 --- 1只公鸡   x
*  2文钱 --- 1只母鸡   y
*  1文钱 --- 3只小鸡   z
*  Q:100文钱  怎么 买到 100只鸡?
*  A:
*  只要公鸡的话  100/3 = 33  max=33
*  只要母鸡的话  100/2 = 50  max=50
*  即:公鸡的取值范围 --- 0~33
*         母鸡的取值范围 --- 0~50
*/
for(int x = 0; x < 33; x ++) {
    for(int y=0; y < 50; y++) {
        //计算小鸡的数量
        int z = 100 - x - y;
        //小鸡数量的合法性验证
        if(z % 3 !=0) continue; //小鸡的数量一定是 3的倍数 不是的话直接进入下一轮循环
        // 再验证 钱数是否正确
        if(x * 3 + y * 2 + z / 3 == 100) {
           //钱数也合法 --- 即算出来了。。。
           System.out.println("公鸡:" + x + ",母鸡:" + y + ",小鸡:" + z);
        }
    }
}
  • 任意数字 各个位数上的 数字之和

abcde ---> a + b + c + d + e = ?

// 设定一个任意的数字
int n = 123456;
int num = n;
// 用来存储最后的和
int sum = 0;
while(n != 0) {
  // 取出最后一位数 加入到和中  如123456 % 10 = 6
  sum += (n % 10);
  // 加完后 将最后一位数 去掉  如 123456 / 10 = 12345
  n /= 10;
  //... 以此类推
}
System.out.println("输入的数值:" + num + ",各个位数上的数字之和是:" + sum);
  • 求数组中的最大值、最小值
int[] arr = {50,66,25,33,45,18,55};
// 定义一个最大值和最小值 
int max = arr[0];
int min = arr[0];
for(int i = 1; i < arr.length; i++) {
    if(max < arr[i]) {
       max = arr[i];
    }
    if(min > arr[i]) {
       min = arr[i];
    }
}
System.out.println("max=" + max + ",min=" + min);
  • 杨辉三角
int n = 10;
int[][] arr = new int[n][n];
for(int i = 0; i < arr.length; i ++) {
    arr[i][0] = 1;
    arr[i][i] = 1;
    if(i == 0) continue;
    for(int j = 1; j < arr[i].length; i ++) {
        arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
    }
}

for(int i = 0; i < arr.length; i ++) {
    for(int j = 0; j <= i; j++) {
        System.out.println(arr[i][j] + "\t");
    }
    System.out.println();
}


🔥2.应用场景:


🔥3.实现目标:


🔥4.代码实现:




  1. 🔥【知识点回顾·简介】 ↓↓↓

  2. 🔑[if语句]

  3. 🔑[switch语句]

  4. 🔑[for循环]

  5. 🔑[while循环]

  6. 🔑[do while循环]

  7. 🔑[循环关键字continue、break]

  8. 🔑[多重循环跳出]

  9. 🔑[综合案例·实战]

相关文章

  • Java开发 流程控制语句【学习篇3】

    【作者前言】:13年入圈,分享些本人工作中遇到的点点滴滴那些事儿,17年刚开始写博客,高手勿喷!以分享交流为主,欢...

  • 【骚全带你学Java---八、流程控制语句】

    java的流程控制语句包含条件语句和循环语句 一.什么是流程控制语句? ·流程控制语句:可以控制程序的执行流程。 ...

  • Java编程基础(5)

    Java基础知识-控制流程方法(2):1.foreach 循环语句 2.return 语句 3.break 语句 ...

  • Java核心基础第3篇-Java流程控制

    Java流程控制 本章一起来探讨下Java的流程控制语句。主要从以下几个方面展开: Java分支语句 Java循环...

  • 流程控制语句

    流程控制语句 @(Java学习) 在学习控制结构之前,了解一下块(block)的概念。 块(即复合语句)是指由一对...

  • 03学习Python

    学习记录,欢迎指出错误 流程控制 Python中流程控制语句有 if语句 for语句 while语句 if语句 在...

  • 划重点丨详解Java流程控制语句知识点

    摘要:流程控制语句就是用来控制程序中各语句执行的顺序,下面将详细介绍java流程控制语句。 本文分享自华为云社区《...

  • Kotlin学习之流程控制

    Kotlin学习之流程控制 @(Kotlin学习) Kotlin的流程控制,可以分为条件语句和循环语句。 一、条件...

  • Java学习笔记——控制流程(三)

    控制流程对于程序语言非常重要,Java中使用条件语句和循环语句来进行流程控制。 一、条件语句 生活中经常遇到这样的...

  • Java学习流程控制语句

    一、条件选择语句 1. if选择语句 单选择/单分支 执行流程:1. 执行条件判断语句2.如果结果为true,执行...

网友评论

      本文标题:Java开发 流程控制语句【学习篇3】

      本文链接:https://www.haomeiwen.com/subject/jpfpihtx.html