首页 > 其他 > 详细

基本语法(下)

时间:2019-07-04 14:01:24      阅读:96      评论:0      收藏:0      [点我收藏+]

本节内容接上节内容,继续讲解 Java 基础语法的剩余内容。主要包括流程控制中的条件语句、循环语句以及跳转语句、数组的相关操作以及用户输入的操作。

流程控制对任何一门编程语言都是至关重要的,它为我们提供了控制程序步骤的基本手段。常见对主要分为,条件语句、循环语句、跳转语句。

知识点

  • 流程控制
  • 数组
  • 用户输入操作

    if 语句是一种判断语句。

    语法:

    if(条件){
        条件成立时执行的代码
    }
    

    技术分享图片

    if...else 语句当条件成立时,则执行 if 部分的代码块; 条件不成立时,则进入 else 部分。例如,如果一个月天数大于 30 天,则为大月,否则为小月。

    语法:

    if(条件){
        代码块1
    }
    else{
        代码块2
    }
    

    技术分享图片

    多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断,以此向下;当前面的条件均不成立时,最终执行 else 块内的代码。

    语法:

    if(条件1){
        代码块1
    }
    else if(条件2){
        代码块2
    }
    ...
    else {
        代码块n
    }
    

    技术分享图片

    注意:如果 if(或 else if,或 else)条件成立时的执行语句只有一条,是可以省略大括号的!但如果执行语句有多条,那么大括号就是不可或缺的。

    比如:

    int days = 31;
    if(days > 30)
        System.out.println("本月是大月");
    else
        System.out.println("本月是小月");
    

    if 语句是可以在内层进行嵌套的。嵌套 if 语句,只有当外层 if 的条件成立时,才会判断内层 if 的条件。

    语法:

    if(条件1){
        if(条件2){
            代码块1
        }
        else{
            代码块2
        }
    }
    else{
        代码块3
    }
    

    技术分享图片

    if 语句练习:小明考了 78 分,60 分以上及格,80 分以上为良好,90 分以上为优秀,60 分以下要重考,编写源代码ScoreJudge.java,输出小明的情况。

    参考代码如下:

    public class ScoreJudge {
        public static void main(String[] args){
            int score = 78;
            if(score >= 60){
                if(score >= 80){
                    if(score >= 90){
                        System.out.println("成绩优秀");
                    }
                    else{
                        System.out.println("成绩良好");
                    }
                }
                else{
                    System.out.println("成绩及格");
                }
            }
            else{
                System.out.println("需要补考");
            }
        }
    }
    

    注:所有的条件语句都是利用条件表达式的真或假来决定执行路径,Java 里不允许将一个数字作为布尔值使用,虽然这在C和C++是允许的,如果要在布尔测试里使用一个非布尔值,需要先用一个条件表达式将其转换成布尔值,其他控制语句同理。

    编译执行:

    $ javac ScoreJudge.java
    $ Java ScoreJude
    成绩及格

    当需要对选项进行等值判断时,使用 switch 语句更加简洁明了。比如:摇号摇到 1 的得一等奖,摇到 2 的得二等奖,摇到 3 的等三等奖,摇到其他的没有奖。

    语法:

    switch(表达式){
        case 值1:
            代码块1
            break;
        case 值2:
            代码块2
            break;
        ...
        default:
            默认执行的代码块
    }
    

    当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。

    新建一个源代码文件Draw.java

    public class Draw {
        public static void main(String[] args){
            int num = 2;
            switch(num){
            case 1:
                System.out.println("恭喜你,获得了一等奖");
                break;
            case 2:
                System.out.println("恭喜你,获得了二等奖");
                break;
            case 3:
                System.out.println("恭喜你,获得了三等奖");
                break;
            default:
                System.out.println("很遗憾,下次再来");
            }
        }
    }
    

    编译运行:

    $ javac Draw.java
    $ java Draw
    恭喜你,获得了二等奖

    while语法:

    while(条件){
        代码块
    }
    

    while 的执行过程是先判断,再执行。

    1. 判断 while 后面的条件是否成立( true or false )
    2. 当条件成立时,执行循环内的代码,然后重复执行1.2., 直到循环条件不成立为止

    技术分享图片

    do-while语法:

    do{
        代码块
    }while(条件);
    

    do-while 的执行过程是先执行,再判断(所以循环内的代码至少会执行一次)

    1. 先执行一遍循环操作,然后判断循环条件是否成立
    2. 如果条件成立,继续执行1.2.,直到循环条件不成立为止

    技术分享图片

    如:

    int i = 0;
    while(i < 100){
        System.out.println("I love ShiYanlou!");
        i++;
    }
    
    int i = 0;
    do {
        System.out.println("I love ShiYanlou!");
        i++;
    } while(i < 100);
    

    练习:分别用 while 和 do-while 两种方法,编写源代码文件SumOfEven.java,实现 1-1000 中所有偶数的和,并输出。验证一下两种方法你输出的结果是一致吗?

    参考代码如下:

    public class SumOfEven {
        public static void main(String[] args){
            int i1 = 1, i2 = 1;
            int sum1 = 0, sum2 = 0;
    
            while (i1 <= 1000){     //循环1000次
                if(0 == i1 % 2){   //判断是否为偶数
                    sum1 += i1;    //将偶数加入到总数里
                }
                i1++;              //i自增1
            }
            System.out.println("用while,1到1000中,所有偶数的和为:"+sum1);
    
            do {
                if (0 == i2 % 2){   //在条件语句中,将数值写在前面是为了防止将==写成了=
                    sum2 += i2;
                }
                i2++;
            } while(i2 <= 1000);
            System.out.println("用do-while,1到1000中,所有偶数的和为:"+sum2);
        }
    }
    

    编译运行:

    $ javac SumOfEven.java
    $ java SumOfEven
    用while,1到1000中,所有偶数的和为:250500
    用do-while,1到1000中,所有偶数的和为:250500

    for语法:

    for(循环变量初始化; 循环条件; 循环变量变化){
        循环操作
    }
    

    for 相比 while 和 do-while 语句结构更加简洁易读,它的执行顺序:

    1. 执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次
    2. 进行循环条件的判断,如果条件为 true,则执行循环体内代码;如果为 false ,则直接退出循环
    3. 执行循环变量变化部分,改变循环变量的值,以便进行下一次条件判断
    4. 依次重新执行2.3.4.,直到退出循环

    技术分享图片

    例如,计算 100 以内不能被 3 整除的数之和:

        int sum = 0; // 保存不能被3整除的数之和
        // 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
        for (int i = 1;i<=100;i++) {
        // 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
            if (i % 3 != 0) {
                sum = sum + i; // 累加求和
            }
        }
        System.out.println("1到100之间不能被3整除的数之和为:" + sum);
    

    练习:编写源代码文件SumOfOdd.java,实现 1-1000 中所有偶数的和,并输出。

    参考代码如下:

    public class SumOfOdd {
        public static void main(String[] args){
            int sum = 0;
            for(int i = 1; i <= 1000; i++){
                if(0 == i % 2){
                    sum += i;
                }
            }
            System.out.println("用for,1到1000中,所有偶数和为:"+sum);
        }
    }
    

    编译运行:

    $ javac SumOfOdd.java
    $ java SumOfOdd
    用for,1到1000中,所有偶数和为:250500

    break关键字经常用在条件和循环语句中,用来跳出循环语句。

    continue关键字的作用是跳过循环体中剩余的语句执行下一次循环。 新建一个源代码文件Jump.java

    public class Jump{
        public static void main(String[] args){
            //break 练习
            for(int i = 1; i <= 10; i++){
                System.out.println("循环第"+i+"次");
                if(0 == i % 3){
                    break;
                }
                if(0 == i % 5){
                    System.out.println("我进来了!");
                }
            }
            //continue练习 打印10以内的所有奇数
            for(int i = 1; i <= 10; i++){
                if(0 == i % 2) //判断i是否为偶数
                    continue;  //通过continue结束本次循环
                System.out.println(i);
            }
        }
    }
    

    编译运行:

    $ javac Jump.java
    $ java Jump 
    循环第1次
    循环第2次
    循环第3次
    1
    3
    5
    7
    9

基本语法(下)

原文:https://www.cnblogs.com/liuba/p/11131613.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!