欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

05、java基础--程序流程控制

程序员文章站 2022-05-07 21:01:51
java基础--程序流程控制 【目录】 一. 顺序结构(宏观上) 二. 分支结构/选择结构(if,switch) 2.1 if语句 2.2 switch语句 三. 循环结构 3.1 for循环 3.2 while循环 其他。。。。。。。 一些关键了解内容 for循环中,for( )括号里定义的变量, ......

 

java基础--程序流程控制

【目录】

一.  顺序结构(宏观上)

二.  分支结构/选择结构(if,switch)

    2.1  if语句

    2.2  switch语句

三.  循环结构

    3.1  for循环

    3.2  while循环

 其他。。。。。。。

 

一些关键了解内容

  • for循环中,for( )括号里定义的变量,循环外无法进行访问。
  • 键盘录入的方法(需熟记):
  1. 导入包:import java.util.Scanner;
  2. 创建扫描对象:Scanner s = new Scanner(System.in);注:同类下,创建一次即可多次使用。
  3. 调用扫描对象的方法,从键盘获得数据:s.nextInt();    //获取int值,如 int i = nextInt(); 用s.next()获取字符串
  • break:终止当前的循环体
  • 在switch中,case下若没有break则会贯穿,主要用于在满足多种场景下输出相同结果。 

 

 

一.  顺序结构

  • 语句按照顺序依次执行
  • 单纯的顺序结构的程序基本不存在

但是,大型程序从宏观上来看的话,各个模块之间也是呈现顺序结构

05、java基础--程序流程控制

 

 

二.  分支结构

  • 分支结构:也称选择结构,程序根据条件表达式的值来决定程序的走向

 

2.1  If语句

05、java基础--程序流程控制

if语句的第一种格式

1 if(条件表达式){
2     语句体;
3 }
4 ...//其它语句

 

if语句的第二种格式

if(条件表达式){
    语句体1;
}else{
    语句体2;
}
...//其它语句

 

if语句的第三种格式

if(条件表达式1){
    语句体1;
}else if(条件表达式2){
    语句体2;
}else if(条件表达式3){
    语句体3;
}
...
else{
    语句体n;
}

 

05、java基础--程序流程控制

 

if语句注意事项:

  • if后的括号内一定是布尔值或者布尔表达式
  • 第二种格式与三元运算符的区别:三元运算符运算完要有值出现,并且可以写在其他表达式中
  • if的语句块中可以加多条语句,实现更复杂的逻辑
  • if/else后边的大括号可以省略,此时if语句只能控制到第一个分号结束;如果有多条语句的话,不能省略

建议不要省略大括号

 

如何从键盘录入数据?

import java.util.Scanner;
Scanner s = new Scanner(System.in);
s.nextInt();    //获取int值,用s.next()获取字符串

05、java基础--程序流程控制

 

2.2  switch语句

格式:

switch(表达式或变量){
    case 取值1:
        语句体1;
        break;
    case 取值2:
        语句体2;
        break;
    …
    default:
        语句体n+1;
        break;
}

05、java基础--程序流程控制

 

 

switch注意事项:

  • switch语句表达式的类型有:byte,short,int,char,String(1.7之后才支持)和枚举类型
  • case之间与default没有顺序:case相当于入口点,没有匹配的case将执行default,default也不是必须的
  • 结束switch语句的情况:遇到break或执行到switch语句结束
  • 如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾

 switch案例

从键盘输入月份数字,显示是第几个季度。

/*
从键盘输入月份数字,显示是第几个季度
*/
import java.util.Scanner;

public class SwitchDemo2{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        System.out.print("请输入月份:");
        int month = s.nextInt();
        
        switch(month){
            case 1:{
                // System.out.println(month + "属于第一季度");
                // break;
            }
            case 2:{
                // System.out.println(month + "属于第一季度");
                // break;
            }
            case 3:{
                System.out.println(month + "属于第一季度");
                break;
            }
            case 4:{
                // System.out.println(month + "属于第二季度");
                // break;
            }
            case 5:{
                // System.out.println(month + "属于第二季度");
                // break;
            }
            case 6:{
                System.out.println(month + "属于第二季度");
                break;
            }
            case 7:{
                // System.out.println(month + "属于第三季度");
                // break;
            }
            case 8:{
                // System.out.println(month + "属于第三季度");
                // break;
            }
            case 9:{
                System.out.println(month + "属于第三季度");
                break;
            }
            case 10:{
                // System.out.println(month + "属于第四季度");
                // break;
            }
            
            case 11:{
                // System.out.println(month + "属于第四季度");
                // break;
            }
            case 12:{
                System.out.println(month + "属于第四季度");
                break;
            }
            default :{
                System.out.println("输入的月份有误");
                break;
            }
        }
        
    }
}

 

 

三.  循环结构

概述:

  • 循环语句可以在满足循环条件的情况下,反复执行某一段代码
  • 被反复执行的代码称为循环体
  • 需要在适当的时候,把循环条件改为假,从而结束循环,否则循环将一直执行下去,形成死循环
  • 完整的循环应该包含以下四个部分:
  1. 初始化语句:初始化工作,在循环体开始之前执行
  2. 循环条件:一个boolean表达式,决定是否执行循环体
  3. 循环体:反复执行的部分
  4. 迭代语句:在循环体执行完之后执行,然后再去判断循环条件,一般用来控制循环条件中的变量,使循环在合适的时候结束

 

3.1  for循环

格式

for(初始化表达式;条件表达式;循环变量控制语句){
    循环体语句;
}

格式说明:

for运行的顺序:

  1. 执行初始化表达式,只执行一次,通常是定义循环变量语句
  2. 判断循环条件:为真就往下执行;为假就结束循环
  3. 执行循环体语句
  4. 执行循环变量控制语句,一般是循环变量的自增或自减
  5. 回到第2步,重复这个过程,直到为假时结束

 

for循环注意事项:

  • 循环变量通常定义为int型,因为最常用的就是int型
  • 循环条件判断的结果是boolean类型值
  • 小括号中的分号不能写成中文的分号
  • 如果循环体只有一条语句的话,可以省略大括号,但建议写全
  • 循环变量控制语句不必每次改变1,根据情况,可以是任意值

 

for循环求和思想

求和思想:在循环体之外定义一个变量,循环体中不断的往这个变量中追加。

//求1-10所有数之和
public class ForDemo{
    public static void main(String[] args){
        int sum = 0;
        for (int i = 1;i <= 10;i ++){
            sum += i;
        }
        System.out.println(sum);
    }
}

 

 

for循环练习

/*
在1-100之间,若是3的倍数,则在它之后输出中文“三”,若是5的倍数,
则在它之后输出中文“五”,若是7的倍数,则在它之后输出中文“七”
*/
public class ForDemo{
    public static void main(String[] args){
        for(int i = 1;i<=100;i++){
            System.out.print(i);
            if(i % 3 == 0){
                System.out.print(" 三");
            }
            if(i % 5 == 0){
                System.out.print(" 五");
            }
            if(i % 7 == 0){
                System.out.print(" 七");
            }
            System.out.println();
        }
    }
}

 

 

3.2  while循环

格式

    [初始化部分]
while(条件表达式){
    循环体语句;
    [循环变量控制语句]
}

 

05、java基础--程序流程控制

执行流程:

  1. 执行初始化语句(如果有的话)
  2. 判断条件表达式真假:如果真,往下执行;如果假,结束循环
  3. 执行循环体语句
  4. 执行循环变量控制语句(如果有的话)
  5. 返回第2步,重复执行,直到条件为假,结束循环

 break:终止当前的循环体

 

for 和 while 的应用场景

  • 当明确知道循环的范围的时候,通常使用for
  • 当不明确循环次数的时候,for和while都可以,通常使用while

案例:

已知:珠穆朗玛峰的高度是:8848米,假设有一张足够大的纸,厚度是0.01米,请问:这张纸折叠多少次可以保证厚度不低于珠穆朗玛峰的高度?

public class WhileDemo{
    public static void main(String[] args){
        int count = 0;
        double hill = 8848.0;
        double paper = 0.01;
        
        while(paper < hill){
            count++;
            paper = paper * 2;
            System.out.println("当前折叠的次数是: " + count + ",当前纸的厚度是: " + paper);
            
        }
        System.out.println("折叠的次数是:"+count);
        
    }
}

 

 

循环变量的使用问题

  for循环的循环变量,一般情况下在循环外是不能访问到的,因为它的作用域是在for循环的{}之内,但是可以通过把循环变量定义在外边来实现这个功能;或者定义计数器

  while循环本身就把循环变量定义在循环之外,所以没有这个问题

/*
这是个错误的程序,for{}外面的i无法访问
*/
for(int i = 0;i<10;i++){
    ...
}
System.out.println(i);    //错误



int i = 0;
for(;i<10;i++){
    ...
}
System.out.println(i);    //正确

 

 

for和while的应用场景

待补充。。。