• [MOOC-Java]1.2.1用变量做计算


    用变量做计算

    获取输入

    应声虫初级版

    package hello;
    
    // 导入Scanner
    import java.util.Scanner;
    
    public class Hello {
    
        public static void main(String[] args) {
            // 这里构建了一个Scanner对象in
            Scanner in = new Scanner(System.in);
            // 使用in.nextLine()来读取整行
            System.out.println(in.nextLine());
            // 记得将in给close
            in.close();
            // 输入:Nice to meet you
            // 输出:Nice to meet you
        }
    
    }
    

    应声虫升级版

    Tips: '+' 号可以起到连接两个字符串的作用

    package hello;
    
    import java.util.Scanner;
    
    public class Hello {
    
        public static void main(String[] args) {
            System.out.print("Input: ");
            Scanner in = new Scanner(System.in);
            // 使用 '+' 号连接
            System.out.println("Output: " + in.nextLine());
            in.close();
            
        }
    
    }
    

    注意'+'号优先级

    例子:

    package hello;
    
    public class Hello {
    
        public static void main(String[] args) {
            System.out.println(2 + 3 + " = 2 + 3 = " + 2 + 3);
            // 输出结果: 5 = 2 + 3 = 23
            
        }
    
    }
    

    找零计算器

    情景导入:你在和你的朋友做价值23元的py(朋友)交易,朋友给了你100元,你应该找回多少钱?

    package hello;
    
    public class Hello {
    
        public static void main(String[] args) {
            // 由于优先级的问题,需要加上()
            System.out.println( "100 - 23" + (100 - 23) );
            
        }
    
    }
    

    情景改变:朋友觉得你这明码标价不够意思,所以准备还价,一会儿他还是给你100块钱,但价钱他来定,你一会你要找给他多杀钱?

    你知道朋友肯定不会为难你,还是会叫价23元,所以你这么找钱:

    package hello;
    
    import java.util.Scanner;
    
    public class Hello {
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            System.out.println("100 - 23 = " + (100 - in.nextInt()));
            in.close();
            // 输入: 23
            // 输出: 100 - 23 = 77
            
        }
    
    }
    

    看上去没有问题!

    但万万没有想到的是,朋友居然不按套路出牌!

    package hello;
    
    import java.util.Scanner;
    
    public class Hello {
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            System.out.println("100 - 23 = " + (100 - in.nextInt()));
            in.close();
            // 输入: 33
            // 输出: 100 - 23 = 63
    
        }
    
    }
    

    ?!怎么有个23没变,来,让我用in.nextInt()把它换掉!

    package hello;
    
    import java.util.Scanner;
    
    public class Hello {
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            System.out.println("100 - " + in.nextInt() + " = " + (100 - in.nextInt()));
            in.close();
            // 输入: 33(回车,没反应?再来)
            // 输入: 33(第二次)
            // 输出: 100 - 33 = 67
            
        }
    
    }
    

    太棒了,我解决了!就是这破电脑居然在我输入的时候卡了(指输入两次)!

    哦?卡了?你再试试,输入两个不同的数字。

    是不是发现结果不是你的预期了?

    嘿嘿!这是因为你每次nextInt()都会读取一个新的数字。

    所以要达到我们只读取一次又要反复使用的目的,

    就要请出我们的主角了————变量!

    变量

    我们的这里的变量和数学中的xyz是很像的,

    可以理解为拿个盒子装一件东西,然后在盒子上贴一个标签。

    给你们看看使用变量的解决方案:

    找零计算器Fixed版

    package hello;
    
    import java.util.Scanner;
    
    public class Hello {
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            // 看下面这条语句
            int price = in.nextInt();
            System.out.println( "100 - " + price + " = " + (100 - price) );
            in.close();
            
        }
    
    }
    

    int price = in.nextInt()

    这条语句时什么意思呢?

    你现在暂且理解为从小溪中用杯子舀起一杯水,然后给这个杯子贴上标签就可以了。

    以后你只要告诉别人这个标签名别人就知道该去哪里找到这杯水了

    System.out.println( "100 - " + price + " = " + (100 - price) );

    这条语句就根据标签名(price)找到了杯子中的水(读取的整数)。

    我们再来看到这条语句:

    int price = in.nextInt()

    我们可以把它分为四个部分:

    • int (变量类型,关键字)
    • price (变量名, 标识符)
    • = (赋值,不是等于)
    • in.nextInt() ( price 的值,表达式)

    <变量类型> <变量名> = <变量值>

    像这样声明一个变量后我们就能(反复)使用了,

    赋值操作倒是可以放在后面来做,

    不过没有赋值的变量的值是不确定的,

    所以建议在声明变量时对其同时赋值(哪怕是赋个0)(也称作初始化)。

    我们后面会再用一篇讲赋值。

    注意:Java是强类型语言,所以变量必须声明后再使用。

    关键字(有时也称为保留字)

    不用刻意记。

    推荐阅读(如果看的懂的话):Java 关键字总结 - @YalesonChan

    有:

    Java关键字

    这些单词是Java自己用的,别人不能用。(不能被用作标识符)

    标识符

    你给杯子贴标签,标签是不能随便起名字的。

    变量名也是一样。

    Java语言的命名规范需遵守下面9个条件:

    1. 标识符由26个英文字符大小写(a~zA~Z)、数字(0~9)、下划线(_)和美元符号($)组成。
    2. 不能以数字开头不能是关键字
    3. 严格区分大小写
    4. 标识符的可以为任意长度
    5. 包名多个单词组成时所有字母小写(例:package helloworld)
    6. 类名和接口、多个单词组成时所有单词的首字母大写(例:HelloWorld)
    7. 变量名和函数名 多个单词组成时第一个单词首字母小写,其他单词首字母大写(例:lastAccessTime、getTime)。
    8. 常量名 多个单词组成时,字母全部大写,多个单词之间使用_分隔(例:INTEGER_CACHE) 注意:只是为了增加规范性、可读性而做的一种约定,标识符在定义的时候最好见名知意,提高代码阅读性。
    9. 虽然Java取消了goto,const这些关键字,但不能用来作为标识符使用

    这九条是规范,粗体是必须遵守的。

    你甚至可以使用中文做你的标识符:

    推荐阅读: 对在代码中使用中文命名标识符的质疑与回应 -掘金@中文编程

    package hello;
    
    import java.util.Scanner;
    
    public class Hello {
    
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            // 我不推荐这样做,无论是从更长远的考虑,还是程序本身。
            int 价钱 = in.nextInt();
            System.out.println( "100 - " + 价钱 + " = " + (100 - 价钱) );
            in.close();
            
        }
    
    }
    

    赋值操作

    下一篇讲。

    表达式

    能返回一个值,

    后面再讲。

  • 相关阅读:
    Alpha冲刺(4/6)
    Alpha冲刺(3/6)
    Alpha冲刺(2/6)
    Alpha冲刺(1/6)
    团队Git现场编程实战
    团队项目-需求分析报告
    团队项目-选题报告
    第二次结对编程作业
    第一次团队展示
    第一次结对编程作业
  • 原文地址:https://www.cnblogs.com/ShyButHandsome/p/13364223.html
Copyright © 2020-2023  润新知