Debug调试程序入门

一、写在前面的话       

很久很久以前,在程序运行遇到问题时,我都是采用在控制台把变量打印出来以定位和分析问题。后来,看到同学帮我调试程序时用了Debug,一下子就找到了我的问题所在。当时的我以一种超级膜拜大神的眼神看着他,看他那么快速的操作着键盘,各种快捷键的按着,电脑的屏幕上各种代码文件跳来跳去,我当时天真地认为我这辈子都学不会这种技能。最近,我正在经历着从以前用Pyhton编程的习惯向用java编程的艰难转变过程,所幸身边有随时就可以请教的java师傅。在我遇到编写的程序运行不出预期的结果时,他一边帮我调试,一边教了我一招,用Debug去调试程序。接下来以一个小例子来说明一下,Debug调试程序的过程。

二、Debug 的关键点

1、选择要认为可能出现问题的程序语句,设置断点

2、选中程序语句所属的方法名,右击,选择Debug as

3、step into (F5) ,进入断点设置的方法里面

4、step over(F6),进入断点设置的语句

5、step return (F7),返回方法体,遍历一遍

快捷键:ctrl + shift + i  :调用方法返回值

三、Demo

1、正确的运行程序:

package beginner;

import java.util.Arrays;

/**
 * 
 * 反转句子;
 *  将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
 *  所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
 * 
* @author lalalawxt * @version v1.0 * @createDate 2019-05-14 */ public class ConverseSentence { public static String reverse(String sentence) { String[] words = sentence.split(" "); StringBuffer mySentence = new StringBuffer(); for (int i = 0; i < words.length; i++) { int j = words.length - 1-i; mySentence.append(words[j]).append(" "); } //删除最后一个单词后的空格 int len = mySentence.length(); mySentence.delete(len-1,len); return mySentence.toString(); } public static void main(String []args ) { String sentence = "I am a boy"; String revSentence = reverse(sentence); System.out.println(revSentence); } }

控制台的输出:

boy a am I

2、错误的运行程序:

package beginner;

import java.util.Arrays;

/**
 * 
 * 反转句子;
 *  将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
 *  所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符
 * 
* @author lalalawxt * @version v1.0 * @createDate 2019-05-14 */ public class ConverseSentence { public static String reverse(String sentence) { String[] words = sentence.split(" "); StringBuffer mySentence = new StringBuffer(); for (int i = 0; i < words.length; i++) { int j = words.length - 1-i; mySentence.append(words[j]).append(" "); } //删除最后一个单词后的空格 //int len = mySentence.length(); // mySentence.delete(len-1,len); mySentence.delete(words.length-1,words.length); return mySentence.toString(); } public static void main(String []args ) { String sentence = "I am a boy"; String revSentence = reverse(sentence); System.out.println(revSentence); } }

    控制台的输出:

boya am I 

3、Debug 调试

(1)双击左侧栏,设置断点

Debug调试程序入门_第1张图片

(2)选中方法名,Debug as

Debug调试程序入门_第2张图片

(3)当鼠标放在断点句中的变量上,会自动显示变量的长度和值

Debug调试程序入门_第3张图片

Debug调试程序入门_第4张图片

(4)分析问题

       根据(3)的显示,mySentence的长度是11,而words的长度是4,要实现在mySentence里删除最后一个单词的空格,显然delete函数中定位的序数取错了。我们也可以进入delete的方法里去看一下其详细代码,看是否我们调用错了方法。按“F5”后程序界面就跳转到StringBuffer类中定义的delete方法体,根据方法定义,我们可知调用的方法参数输入格式没有错误。

Debug调试程序入门_第5张图片

       最后,关于调用方法返回值“Ctrl + Shift + i” ,进入断点设置的语句“F6”,返回方法体,遍历一遍“F7” 的使用方法在实际的调试程序过程中,根据自己的需求来选择使用吧。Debug调试的每个变量显示的值都是实际运行得到的值。

你可能感兴趣的:(java学习)