zoukankan      html  css  js  c++  java
  • 2018-2019-2 20175205实验一《Java开发环境的熟悉》实验报告

    2018-2019-20175205实验一《Java开发环境的熟悉》实验报告

    实验步骤

    (一)命令行下Java程序开发

    在Linux下运行结果:
    输入图片说明
    在IDEA中运行结果:
    输入图片说明

    (二)IDEA下Java程序开发、调试:学会通过调试(Debug)来定位逻辑错误

    1.调试程序首先要会设置断点和单步运行。设置断点,在要设置断点的行号旁用鼠标单击一下就行(或使用Ctrl+F8快捷键)
    输入图片说明
    2. 然后单击菜单「Run」->「Debug...」(或使用Alt+Shift+F9快捷键)开始调试Java程序
    此时第5行代码没有被执行,变量sum的值并不是11,如图
    输入图片说明
    3. 通过单步运行让程序运行到第6行,单步运行有两种:Step Into(快捷捷F7)和Step Over(快捷捷F8),优先使用Step Over,这时查看变量i的值,会看到sum等于11。如图:
    输入图片说明
    4. 让程序直接运行到第9行,首先我们要在第9行设置断点,然后单击Resume图标(快捷键F9),如图:
    输入图片说明
    5. 单步执行效率比较慢还导致另外一个问题,若一个大循环中间出了问题,这时可以通过条件断点解决问题。设置条件断点,我们在第9行左边断点处单击鼠标右键,弹出断点属性框,我们设置条件“i==50”,按F9,如图:
    输入图片说明
    6. 临时断点,断点只中断一次,比如我们想把第9,10行的for循环一下子运行完,我们就需要在第12行设个条件断点。我们可以在第十二行设个断点,然后鼠标右击断点:然后点「More」或按快捷键Ctrl+Shift+F8打开断点设置窗口,选中「Remove Once hit」
    输入图片说明
    7. 方法断点:认为某个方法出错了,就可以设置方法断点。把光标移到方法中的任一行,使用菜单「Run」->「Toggle Method Breakpoint」.

    (三)练习

    练习题目:实现求排列数P(n,m)的功能,m,n从命令行输入,并进行测试(正常情况,异常情况,边界情况)。
    代码编写:

    import java.util.Scanner;
    
    class Arrangement{
        int m,n;
        int temp1=1,temp2=1;
        void getMN(int x,int y){
            n = x;
            m = y;
        }
        int Arrangement(){
            for(int i=1; i<=n; i++){
                temp1 = temp1*i;
            }
            for(int i=1; i<=n-m; i++){
                temp2 = temp2*i;
            }
            return temp1/temp2;
        }
    }
    
    public class Experiment1 {
        public static void main(String[] args) {
            System.out.println("请输入n和m:");
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            int m = in.nextInt();
            while(m<=0||n<=0){
                System.out.println("请输入大于0的数:");
                n = in.nextInt();
                m = in.nextInt();
            }
            while (n<m){
                System.out.println("n应大于m,请重新输入:");
                n = in.nextInt();
                m = in.nextInt();
            }
            Arrangement arr = new Arrangement();
            arr.getMN(n,m);
            int result = arr.Arrangement();
            System.out.println("result="+result);
        }
    }
    

    写程序的时候考虑到了以下问题:
    1.输入的n,m应当大于等于0
    2.n应当大于等于m
    因此输入n,m时,考虑到了边界值,使程序更健全。
    输入图片说明
    用debug调试
    输入图片说明

    实验中遇到的问题

    Q:IDEA的快捷键和Windows有冲突,调试时会出现如按F8显示投影的相关内容。
    A:同时按Fn+Esc,关闭Windows的快捷键
    参考了[Link]https://zhidao.baidu.com/question/1178784346146518699.html

    Q:在设置条件断点时还出现了如下问题:
    输入图片说明
    A:在设置条件时,只输入了50,导致发生了错误,应该输入i==50.

    Q:无法运行程序,出现了文件加时钟的符号
    输入图片说明
    A:符号的意思是:java class located out of the source root.refer to the section Configuring Content Roots for details.经过查询,主要是因为没有设置output的路径,文件不可编译,所以会出现如上图标。
    参考[Link]https://blog.csdn.net/jielinku29/article/details/79678467

    输入图片说明

    学习总结

    在IDEA中学了一些简单快捷键的使用方法:
    1.CTRL+Z 倒退(撤销)
    2.alt+F8 debug时选中查看值
    3.Alt+Shift+F9 选择 Debug
    4.Alt+Shift+F10 选择 Run
    5.Ctrl+Shift+F9 编译
    6.psvm 生成main方法--public static void main(String[] args) { }
    7.sout 生成--System.out.orintln()
    这个代码是我自己第一次独立完成的程序,编完之后还输出了正确结果,并且也做到了边界测试,非常自豪。在编写过程中,还遇到一些知识性的问题,通过翻书查找,巩固记忆,锻炼了能力,纸上得来终觉浅,还是要亲身实践,自己去做,才可能发现自己的不足之处,加以改进,得到提升。

    参考博客

    快捷键的使用[Link]https://github.com/judasn/IntelliJ-IDEA-Tutorial/blob/master/keymap-introduce.md#ctrl

  • 相关阅读:
    MyBatis
    泛型集合(经典)
    Java高级特性--------->>>>>实用类
    Java高级特性----->>>>集合
    【java面试题】StringBuilder与StringBuffer和String 的区别
    Java面向对象------>try{}catch(){}异常
    Java面向对象----->接口和抽象类
    Java修饰符------>static、native和final以及super和this关键字
    面向对象------->多态
    面向对象--->封装和继承
  • 原文地址:https://www.cnblogs.com/orii/p/10572599.html
Copyright © 2011-2022 走看看