#day6-流程

目录

Java流程控制

Scanner交互

  • 通过Scanner类来获取用户的输入。

  • 基本语法:

    Scanner s = new Scanner(Systerm.in);

  • next()和nextLine()方法获取输入的字符串;读取前,使用hasNext()和hasNextLine()判断是否还有输入。

  • next():

    1. 一定要读取到有效字符后才可以结束输入。
    2. 对于输入有效字符之前的空白,next() 方法会自动将其去掉。
    3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
    4. next()不能得到带有空格的字符串。
  • nextLine():

    1. 以Enter为结束符,即nextLine()方法返回的是输入回车之前的所有字符。
    2. 可以获得空白。


例子:

public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        //从键盘接受数据
        int i = 0;
        float f = 0.0f;
        System.out.println("请输入整数:");
        if (scanner.hasNextInt()) {
            i = scanner.nextInt();
            System.out.println("整数数据:" + i);
        } else {
            System.out.println("输入的不是整数数据");
        }
		
        //----------------------------------
        System.out.println("请输入小数:");
        if (scanner.hasNextFloat()) {
            f = scanner.nextFloat();
            System.out.println("小数数据:" + f);
        } else {
            System.out.println("输入的不是整数数据");
        }

        scanner.close();
    }
}

上面程序会出现这样的运行结果:

结果

我们会发现,下面的hasNextFloat()方法并没有生效,原因是上面的hasNextInt()方法判断输入的10.1不是整数,于是没有将nextInt()语句执行,此时10.1就作为了下面hasNextFloat()的判断因素,所以程序直接跳过了输入的阶段。

顺序结构

即按照顺序依次执行。

Java基本结构就是顺序结构。

选择结构

if单选择结构

语法:

if(/*布尔表达式*/){
    //如果布尔表达式为true将执行的语句
}

if双选择结构

语法:

if(/*布尔表达式*/){
    //如果布尔表达式的值为true执行代码
}else{
    //如果布尔表达式的值为false执行代码
}

if多选择结构

语法:

if(/*布尔表达式1*/){
    //如果布尔表达式1的值为true执行代码
}
else if(/*布尔表达式2*/){
    //如果布尔表达式2的值为true执行代码
}else{
    //如果以上布尔表达式的值为false执行代码
}

嵌套的if结构

switch多选择结构

  • switch case语句判断一个变量与一系列值中的某个是否相等。

  • switch语句中的变量类型可以是:
    byte、short、int、char;
    String(从Java SE7开始支持);

  • 语法:

    switch(/*expression*/){
        case value:
            //语句
            break;
        case value:
            //语句
            break;
        default://可选
            //语句
    }
    

    简单的反编译:在模块里找到路径,将class文件复制到IDEA里打开,可从class得到java文件。

循环结构

while循环

结构为:

while(/*布尔表达式*/){
    //循环内容
}
  • while是最基本的循环;
  • 布尔表达式为true,循环则一直执行;
  • **大多数情况下需要循环停止下来,需要一个让表达式失效的方式来结束循环;
  • 注意避免死循环。

do…while循环

  • 语法:

    do {
        //代码语句
    }while(/*布尔表达式*/);
    
  • while和do…while的区别:

    1. while先判断后执行,do… while先执行后判断;
    2. do… while至少执行一次。

for循环

  • for循环语句是支持迭代的一种通用结构,最有效、最灵活的循环结构。

  • 执行次数在执行前就确定了。语法:

    for(/*初始化;布尔表达式;更新*/){
        //代码语句
    }
    

    当()中三个条件为空时,则是一种死循环!

**Demo01:**计算0到100之间的奇数和、偶数和。

public class ForDemo01 {
    public static void main(String[] args) {
        //计算0到100之间的奇数和、偶数和

        int oddsum = 0; //奇
        int evensum = 0;  //偶
        for (int i = 0; i < 100; i++) {
            if (i % 2 == 0) {
                evensum += i;
            } else {
                oddsum += i;
            }
        }
        System.out.println("奇数和为:" + oddsum);//2500
        System.out.println("偶数和为:" + evensum);//2550
    }
}

**Demo02:**用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个。

public class ForDemo02 {
    public static void main(String[] args) {
        //用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个

        for (int i = 1; i <= 1000; i++) {
            if (i % 5 == 0) {
                System.out.print(i + "\t");
            }
            if (i % (5 * 3) == 0) {
                System.out.println();
            }
        }
        /*
        print()     输出后不会换行
        println()   输出后自动换行
        */
    }
}

**Demo03:**打印九九乘法表。

public class ForDemo03 {
    public static void main(String[] args) {
        //打印九九乘法表
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(i + "x" + j + "=" + (i * j) + "\t");
            }
            System.out.println();
        }
    }
}

增强型for循环

  • 用于数组或集合。语法:

    for(/*声明语句:表达式*/){
        //代码句子
    }
    
    1. 声明语句:类型必须与数组元素类型匹配,作用域在循环块中,其值与此时数组元素相等。
    2. 表达式:即要即要访问的数组名,或是返回值为数组的方法。

break、continue

  • break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
  • continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

练习

例:打印一个三角形。

public class TestDemo {
    public static void main(String[] args) {
        //打印三角形     5行
        for(int i=1;i<=5;i++){
            //打印左侧空白倒三角
            for(int j=5;j>=i;j--){
                System.out.print(" ");
            }
            //打印中间三角形
            for(int j=1;j<=(2*i-1);j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

学习内容来自:b站视频-狂神

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值