前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【趣学程序】java基础知识(二)

【趣学程序】java基础知识(二)

作者头像
趣学程序-shaofeer
发布2019-07-27 18:30:42
5180
发布2019-07-27 18:30:42
举报
文章被收录于专栏:upuptop的专栏

表达式

表达式是由数字、运算符、数字分组符号(括号)等以能求得数值的有意义排列的序列

代码语言:javascript
复制
以下都是表达式:
a + b3.14 + a(x + y) * z + 100boolean b= i < 10 && (i%10 != 0)

表达式的类型和值:

  • 对表达式中操作数进行运算得到的结果是表达式的值。
  • 表达式值的数据类型即为表达式的类型。

表达式的运算顺序

  • 应按照运算符的优先级从高到低的顺序进行;
  • 优先级相同的运算符按照事先约定的结合方向进行;

运算符优先级如下图

三目运算符

语法格式:

代码语言:javascript
复制
x ? y : z;
其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算符的结果是表达式y的值,否则就是z的值。

代码实操:

public class Demo2 {    public static void main(String[] args) {        String  s = "lz";        s = (s == "lz" ? "正确" : "错误");        System.out.println(s);    }}

输出:正确

程序流程控制

  • 顺序结构

如果代码里没有流程控制,程序是至上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,直到程序的最后。

  • 分支结构(条件结构)
代码语言:javascript
复制
if语句:    基本语法:
    if(表达式){
        方法体
    }else if(表达式){
        方法体
    }else{
        方法体    }

    几种形式:    三种格式:    if(条件表达式){        执行语句;    }
    if(条件表达式){        执行语句;    }else{        执行语句;    }    if(条件表达式){        执行语句;    }else if (条件表达式){        执行语句;    }
    …… //可以有多个  elseif
    else{        执行语句;}    }


    代码实操
    public class IfDemo {        public static void main(String args[]) {            int i = 3;            if (i > 5) {                System.out.println("变量i大于5");            } else if (i > 4) {                System.out.println("变量i小于4");            } else {                System.out.println("其他");            }
        }    }


switch控制语句
    格式:    switch(表达式)    {        case 表达式可能的结果值1:                执行语句;        break;        case 表达式可能的结果值2:                执行语句;        break;            ...        default:                执行语句;        break;//最后这个一般不写    }
    备注:    case之间与default没有顺序。先执行第一个case,    都没有匹配的case值执行default。    结束switch语句的两种情况:遇到break,switch语句执行结束。    如果匹配的case或者default没有对应的break,    那么程序会从第一次匹配的case语句开始继续向下执行,    运行可以执行的语句,直到遇到break或者switch结束为止。

    public class SwitchDemo {        public static void main(String[] args) {            int a = 7, b = 5;            switch (a - b) {                case 3://表达式可能的值;                {                    System.out.println("33!");                }                break;
                case 4: {                    System.out.println("44!");                }                break;                default://都没有执行则 执行该语句!                    System.out.println("其它的");            }        }    }


    注意:switch语句只能使用byte、char、short、int        四种基本类型以及它们的包装类和枚举.        JDK1.7版本之后,switch语句可以使用字符串变量。
  • 循环结构
代码语言:javascript
复制
三大循环结构:    用于处理需要重复执行的操作,(例如:计算从1+2+3+4+...+1000的值);    根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落我们称为循环体;    while:事先不需要知道循环执行多少次;    do  while:同上,只是至少要执行一次(先做,后判断);    for:需要知道循环次数;

循环结构(while & do while)while语句格式:
while(条件表达式值为true){    执行语句;}
do while语句格式:
do{    执行语句;}while(条件表达式值为true);
do while特点是无论条件是否满足,循环体至少被执行一次

循环结构(for)格式:
for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3)){        执行语句;(4)}执行顺序:(1) → (2) → (4) → (3) → (2) → (4) → (3)

注意

  1. for里面的3个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复整个过程,直到条件不满足为止。
  2. while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
  3. 最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

代码练习

代码语言:javascript
复制
使用三种循环计算 1+2+3+4+5+...+100的结果
public class ForDemo {
    public static void main(String[] args) {        int sum = 0;        for (int i = 1; i <= 100; i++) {            sum += i;        }
        System.out.println(sum);    }
}


public class WhileDemo {
    public static void main(String[] args) {        int sum = 0;        int i = 1;        while (i <= 100) {            sum += i;            i++;        }
        System.out.println(sum);    }
}

public class DoWhileDemo {
    public static void main(String[] args) {        int sum = 0;        int i = 1;        do {            sum += i;            i++;        } while (i <= 100);
        System.out.println(sum);    }
}

if条件语句与循环语句结合使用。
输出100以内可以被33整除数字,文中使用for循环实现,请尝试使用其他循环实现。
public class ForAndIfDemo {    public static void main(String[] args) {        for (int i = 1; i < 100; i++) {            if (i % 33 == 0) {                System.out.println(i);            }        }    }
}
//结果:33 66 99

嵌套循环与流程控制

嵌套循环:循环里套循环 假设外循环的循环次数是m次,内循环的循环次数是n次,那么内层循环的循环次数需要 m * n次。

代码语言:javascript
复制
需求:利用for循环语句的嵌套打印出乘法口诀表
public class ForForDemo {    public static void main(String[] args) {        for (int i = 1; i <= 9; i++) {            for (int j = 1; j <= i; j++) {                //注意这里 使用的System.out.print   输出不换行                System.out.print(j + " * " + i + " = " + (i * j) + "\t");            }
            //打印换行符            System.out.println();        }    }
}
打印结果:1 * 1 = 1    1 * 2 = 2    2 * 2 = 4   1 * 3 = 3    2 * 3 = 6   3 * 3 = 9   1 * 4 = 4    2 * 4 = 8   3 * 4 = 12  4 * 4 = 16  1 * 5 = 5    2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25  1 * 6 = 6    2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36  1 * 7 = 7    2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49  1 * 8 = 8    2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64  1 * 9 = 9    2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81  

流程控制语句 ,在循环中我们可以通过break跳出循环,可以通过continue跳过这次循环。

  • break:终止该层循环;
  • continue:跳过该层循环 注:
  1. 若这两个语句离开应用范围,存在是没有意义的。
  2. 这个两个语句后面都不能有语句,因为执行不到。
  3. continue语句是跳过本次循环,继续下次循环。
  4. 标签的出现,可以让这两个语句作用于指定的循环。
代码语言:javascript
复制
输出1-10前4位数字与 2 的乘积,且第2位数字不参与运算输出其本身即可


public class BreakDemo {
    public static void main(String[] args) {        //    输出1-10前4位数字与 2 的乘积,且第2位数字不参与运算输出其本身即可
        for (int i = 1; i <= 10; i++) {
            if (i == 2) {                //    第二位数字仅仅输出  不参与运算                System.out.println(i);                //遇到continue 程序不会向下走                continue;            }

            if (i > 4) {                //    仅仅输出前4位 大于4 即跳出循环                // 遇到break直接结束循环                break;            }

            int temp = i * 2;
            System.out.println(temp);        }    }
}
//输出结果 2 2 6 8

使用标签跳出指定循环

代码语言:javascript
复制
程序遇到break 会跳出与之最近的循环。如果是两层循环,break在最内层,则退出内层循环。如何让break在最内层,跳出外层循环?
public class ForTipDemo {
    public static void main(String[] args) {        WC:        for (int i = 1; i < 10; i++) {            NC:            for (int j = 1; j < 10; j++) {                System.out.println(j + " * " + i + " = " + (j * i));                if (j == 4) {                    break WC;                }            }        }    }
    /*    输出结果    1 * 1 = 1    2 * 1 = 2    3 * 1 = 3    4 * 1 = 4     */
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 趣学程序 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三目运算符
  • 程序流程控制
  • 代码练习
  • 嵌套循环与流程控制
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档