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

代码托管Link

学习总结

在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

2018-2019-2 20175205实验一《Java开发环境的熟悉》实验报告的更多相关文章

  1. 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...

  2. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

  3. 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...

  4. 20165205 实验一 java开发环境的熟悉 实验报告

    20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...

  5. 20162327实验一Java开发环境的熟悉实验报告

    20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...

  6. 实验一Java开发环境的熟悉

    实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...

  7. 20175316 盛茂淞 实验一 Java开发环境的熟悉

    20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...

  8. 20155327实验一 Java开发环境的熟悉

    20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...

  9. 20165233 实验一 Java开发环境的熟悉

    20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...

  10. 20155231 java实验一 Java开发环境的熟悉

    20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...

随机推荐

  1. css Margin-top塌陷,解决方法

    在两个盒子嵌套时,内部的盒子设置的margin-top会加到外边的盒子上,导致内部的盒子margin-top设置失败,解决方法如下: (1)外部盒子设置一个边框 (2)外部盒子设置overflow:h ...

  2. python学习:格式化输出

    格式化输出 代码如下: name = input("Name:") age = input("Age:") job = input("Job:&quo ...

  3. css实现连续数字和英文的自动换行的方法

    1.(IE浏览器)连续的英文字符和阿拉伯数字,使用word-wrap : break-word ;或者word-break:break-all;实现强制断行 #wrap{word-break:brea ...

  4. Solve Error: MissingSchemaError: Schema hasn't been registered for model "YourModel".

    使用MongoDB的时候,如果遇到下面这个错误: /home/ec2-user/YourProject/node_modules/mongoose/lib/index.js: throw new mo ...

  5. superset安装配置

    1.安装操作系统依赖 yum -y install vim net-tools yum upgrade python-setuptools yum -y install gcc gcc-c++ lib ...

  6. arcengine导出复本

    参考: https://gis.stackexchange.com/questions/172315/creating-checkout-replica-in-arcobjects-from-arcs ...

  7. Python append()方法--list

    描述 append()方法:用于向列表末尾添加新的对象. 语法 语法格式:list.append(object) 参数 object:添加到列表末尾的对象,这里的对象可以是一个元素.列表.字典或元组等 ...

  8. python yield,yield from,深浅拷贝

    (一)yield和yield from 转自:理解yield   yield from (1)yield 1.通常的for…in…循环中,in后面是一个数组,这个数组就是一个可迭代对象,类似的还有链表 ...

  9. HDD ,SSD和PCIE SSD性能测试

      PCIE SSD   * MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s] * KB = 1000 bytes, KiB = 10 ...

  10. php优秀的库

    PHP 是一种通用开源脚本语言.语法吸收了 C 语言.Java 和 Perl 的特点,利于学习,使用广泛,主要适用于 Web 开发领域,是大多数后端开发者的首选.PHP 作为最受欢迎的编程语言之一,经 ...