美文网首页
变量与数据类型(三)

变量与数据类型(三)

作者: 筱笑 | 来源:发表于2017-07-12 17:49 被阅读24次

    一、通过args数组获取数据

    通过main方法的args数组可以从控制台获取一组字符串数据。

    【案例】给main方法分args数组输入两个整数,对这两个整数进行四则运算,结果如下所示:


    运算结果.png
    代码
    public class Test15 {
        public static void main(String[] args) {
            int a=Integer.parseInt(args[0]);
            int b=Integer.parseInt(args[1]);
            System.out.println(a+"+"+b+"="+(a+b));
            System.out.println(a+"-"+b+"="+(a-b));
            System.out.println(a+"*"+b+"="+a*b);
            System.out.println(a+"/"+b+"="+a/b);
        }
    }
    结果:
    10+3=13
    10-3=7
    10*3=30
    10/3=3
    

    注意:运行时,按照下图所示操作
    步骤一:

    图一 .png

    步骤二:

    图二.png

    步骤三:

    图三.png

    二、通过Scanner从控制台获取数据

    1、概述

    • Scanner类用于扫描从控制台输入的数据,可以接收字符串和基本数据类型的数据。
    • Scanner类位于java.util.Scanner包中。

    2、Scanner类的常用方法

    <1> String next();
    作用:接收控制台输入的一个字符串。next是以空格或回车作为一次数据输入的结束,因此,next方法不能将空格作为字符串接收。
    <2>String nextLine();
    作用:接收控制台输入的一个字符串。nextLine是以回车作为数据输入的结束,因此,nextLine可以接收空格作为字符串的一部分。
    <3>int nextInt();
    作用:接收控制台输入的一个int类型的数据。
    <4>double nextDouble();
    作用:接收控制台输入的一个double类型的数据。
    <5>boolean nextBoolean();
    作用:接收控制台输入的一个boolean类型的数据。
    <6>输入char类型的数据
    Scanner类没有提供直接输入char类型的方法,可以通过charAt()方法从next()或nextLine()获取输入的字符。
    char String.charAt(int index);
    作用:从字符串中获取指定下标的字符,下标从0开始。
    例如:“abc”.charAt(0)的结果是a。
    例如:“abc”.charAt(1)的结果是b。
    例如:next().charAt(0);从控制台输入的字符串中获取第一个字符。

    3、使用步骤

    步骤1、创建Scanner类的一个对象。

    示例:
    Scanner scanner=new Scanner(System.in);
    System.in这个参数用来指定scanner接收控制台输入的数据。
    

    步骤2、通过scanner调用next等方法,接收控制台输入的数据。

    示例:
    System.out.println("姓名:");
    String name=scanner.next();
    

    4、案例

    【示例】从控制台输入多种类型的数据
    通过控制台输入一个人的姓名、性别、年龄、身高和性格,然后让该人和大家做自我介绍。


    结果.png
    代码
    public class Test16 {
        public static void main(String[] args) {
            //步骤1、创建Scanner对象
            Scanner scanner=new Scanner(System.in);
            //步骤2、向控制台输出文本
            System.out.println("姓名:");
            //步骤3、接收输入的姓名字符串
            String name=scanner.next();
            System.out.println("性别:");
            char sex=scanner.next().charAt(0);
            System.out.println("年龄:");
            int age=scanner.nextInt();
            System.out.println("身高:");
            double height=scanner.nextDouble();
            System.out.println("性格:");
            String type=scanner.next();
            System.out.println("嗨,大家好,俺叫"+name+",今年"+age+"岁,身高"+height+"米,俺是一个"+type+sex+"士");
        }
    }
    结果:
    姓名:
    张飞
    性别:
    男
    年龄:
    35
    身高:
    1.99
    性格:
    豪放的
    嗨,大家好,俺叫张飞,今年35岁,身高1.99米,俺是一个豪放的男士
    

    三、变量的自加、自减、自乘、自除运算

    • 自增是一个变量在原有值基础上再增加指定值。
    • 自减是一个变量在原有值基础上再减去指定值。
    • 自乘是一个变量在原有值基础上再乘以指定值。
    • 自除是一个变量在原有值基础上再除以指定值。

    1、自增

    1>整形变量的自增;

    int i=0;
    i=i+1;
    

    2>字符串类型变量的自增

    String space="";
    space=space=" ";    //双引号中间有一个空格
    

    3>自增运算的简写形式:
    <1>先加1:++i

    示例:
    int i=1;
    System.out.println(++i);输出的结果是2,变量i的值是2
    String space="";
    space+=" ";
    

    <2>后加1:i++

    示例:
    int i=1;
    System.out.println(i++);输出的结果是1,变量i的值是2
    

    4>自增n

    自增n:i+=n
    等效于:i=i+n
    示例:
         i+=5;  // i=i+5;
    

    2、自减

    1>先减1:--i

    示例:
    int i=1;
    System.out.println(--i);输出的结果是0,变量i的值是0
    

    2>后减1:i--

    示例:
    int i=1;
    System.out.println(i--);输出的结果是1,变量i的值是0
    

    3>自减n

    自减n:i-=n
    等效于:i=i-n
    示例:
         i+-=5;  // i=i-5;
    

    3、自乘n

    自乘n:i*=n
    等效于:i=i*n
    示例:
    double d=2;
    d*=5;  //d=2*5;
    

    4、自除n

    自除n:i/=n
    等效于:i=i/n
    示例:
    double d=15;
    d/=5;  //d=15/5;
    

    四、交换两个变量的值

    两个变量值互换是基本的算法,在排序等算法中应用。

    已知:int a=100; int b=10; 交换两个变量值,使得a=10,b=100;

    解法一:
    错误代码:
    a=b;
    b=a;
    正确代码:
    int c=a;
    a=b;
    b=c;
    
    解法二:
    不借助第三个变量,仅在两个变量之间交换值。
    步骤1、a=a+b;
    结果:a=a+b,b=b
    步骤2、b=a-b;
    结果:a=a+b,b=a
    步骤3、a=a-b;
    结果:a=b,b=a
    

    五、Java的错误类型

    程序的错误分为编译期语法错误、运行期异常错误和运行期逻辑错误。

    1、编译期语法错误

    可以借助Eclipse的帮助方便的定位错误,并进行修改。

    2、运行期异常

    系统会提示错误的类型和出错的位置。


    运行期.png

    3、逻辑错误

    逻辑错误是指程序可以编译运行,但程序执行的结果却不是预期的效果。


    逻辑错误.png

    六、Debug调试

    1、概述

    • 调试是查找、解决软件中逻辑错误代码(称为bug:软件臭虫)的重要手段,是软件开发中必不可少的环节。
    • 调试也是学习、研究其他人编写的代码的一个很好地手段。
    • Eclipse提供了强大的代码调试功能-Debug,通过Debug视图能快速定位代码中的逻辑错误,提高软件开发效率。

    2、Debug视图

    步骤见下图

    Debug-1.png Debug-2.png Debug-3.png

    3、断点

    • 断点是在源代码的可执行部分的指定行设置一个标志,在调试运行方式下,程序运行到该断点标志处会自动暂停,等待下一步操作。
    • 通过设置断点可以快速执行断点之前的代码,然后在断点处暂停,这时可以换单个命令运行的方式来运行程序,查找程序中德逻辑错误。
    • 断点设置的位置应该是程序员怀疑错误代码的附近位置,即对出错位置的定性分析,是一个大概的位置。
    调试.png

    相关文章

      网友评论

          本文标题:变量与数据类型(三)

          本文链接:https://www.haomeiwen.com/subject/lrfbhxtx.html