A:什么是断点:(下列操作方法采用的软件为eclipse----不要杠----idea进行debug的调试我会在本段末给出)
就是一个标记,从哪里开始。
B:如何设置断点:
你想看哪里的程序,你就在那个有效程序的左边双击即可。
C:在哪里设置断点:
哪里不会点哪里。
目前:我们就在每个方法的第一条有效语句上都加。
D:如何运行设置断点后的程序:
右键 – Debug as – Java Application
E:看哪些地方:
Debug:断点测试的地方
在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。
Variables:查看程序的变量变化
ForDemo:被查看的源文件
Console:控制台
F:如何去断点:
再次双击即可
找到Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击那个双叉。
会弹出一个页面让我们选择是否进入debug模式,选择yes。
*
-
如何让程序往下执行呢?
-
Step Over 执行下一步
-
F6
-
看那些区域呢?
-
代码区域:看程序的执行步骤
-
Debug区域:看程序的执行步骤
-
Variables:看变量的创建,赋值,销毁等
-
Console:看程序的输入和输出
-
如何去除断点:
-
A:把加断点的动作再来一遍
-
B:在debug视图中,找到Breakpoints,选中断点,点击双x即可
-
Idea中进行debug调试的方法:进行单击选择断点位置(会在代码段前面出现一个大的红色圆点)
-
执行debug模式的三种方法:
-
1.Idea最上方工具栏–run–debug(或可以直接alt +shift+f9)
-
2.右上(绿色的类似小虫子图标)点击一下即可
-
3.主方法中有一个对代码执行操作的图标(暂停键样式图标),点击选择debug主方法即可
//数组翻转题目1.0版本
package mydebug;
import java.util.Scanner;
public class arrExchange {
public static void main(String[] args) {
/*
* 需求:
* (1)键盘录入5个int类型的数据存储数组arr中
* (2)定义方法将arr数组中的内容反转
* (3)定义方法对反转后的数组进行遍历
* 分析:1.键盘录入
* 2.数组元素交换int temp=a;
* a=b;
* b=temp;
* 3.方法遍历 */
System.out.println("欢迎进入数组交互系统!");
int[] arr=new int[5];
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个元素!");
arr[0]=sc.nextInt();
System.out.println("请输入第二个元素!");
arr[1]=sc.nextInt();
System.out.println("请输入第三个元素!");
arr[2]=sc.nextInt();
System.out.println("请输入第四个元素!");
arr[3]=sc.nextInt();
System.out.println("请输入第五个元素!");
arr[4]=sc.nextInt();
bianli(arr[0],arr[1],arr[2],arr[3],arr[4]);
exchange(arr[0],arr[1],arr[2],arr[3],arr[4]);
}
public static void exchange(int a,int b,int c,int d,int e){
int[] arr={
a, b, c, d, e};
int x=0;
int y=1;
for (int i=0;i<arr.length;i++){
x=arr[i];
arr[i]=arr[arr.length-y];
arr[arr.length-y]=x;
y++;
if (i>arr.length-y){
break;}
}
for (int m=0;m<arr.length;m++){
System.out.println(arr[m]);
}
}
public static void bianli(int a,int b,int c,int d,int e){
int[] arr={
a, b, c, d, e};
for (int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
// 老师给的代码
package mydebug;
import java.util.Scanner;
public class arrExchange2 {
public static void main(String[] args) {
// 定义一个长度为5的数组
int[] arr = new int[5];
// 通过键盘录入数据给数组中的元素赋值
Scanner sc = new Scanner(System.in);
for (int x = 0; x < arr.length; x++) {
System.out.println("请给出第" + (x + 1) + "个元素");
arr[x] = sc.nextInt();
}
System.out.println("反转前的数组元素:");
printArray(arr);
// 定义方法将arr数组中的内容反转
reverse(arr);
System.out.println("反转后的数组元素:");
//定义方法遍历数组
printArray(arr);
}
//遍历数组
public static void printArray(int[] arr) {
System.out.print("[");
for(int x=0;x<arr.length; x++){
if(x == arr.length-1) {
System.out.println(arr[x]+"]");
}else {
System.out.print(arr[x]+", ");
}
}
}
/*
* 两个明确: 返回值类型:void 参数列表:int[] arr
*/
public static void reverse(int[] arr) {
for(int startIndex=0,endIndex=arr.length-1;startIndex<=endIndex;startIndex++,endIndex--) {
int temp = arr[startIndex];
arr[startIndex] = arr[endIndex];
arr[endIndex] = temp;
}
}
}
// 2.0改进后的版本
package mydebug;
import java.util.Scanner;
public class arrExchange3 {
public static void main(String[] args) {
int[] arr=new int[5];
Scanner sc=new Scanner(System.in);
for (int x=0;x<arr.length;x++){
System.out.println("请输入第"+(x+1)+"个元素");
arr[x]=sc.nextInt();
}
System.out.println("没有交换之前的数组元素排列为:");
printArr(arr);
Arrexchange(arr);
System.out.println();
System.out.println("交换后的数组元素排列为:");
printArr(arr);
}
public static void printArr(int[] arr){
System.out.print("[");
for (int i=0;i<arr.length;i++) {
if(i==arr.length-1){
System.out.print(arr[i]+"]");
}else{
System.out.print(arr[i]+",");
}
}
}
public static void Arrexchange(int[] arr){
for (int start=0,end=arr.length-1;start<=end;start++,end--){
int temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
}
}
package mydebug;
import java.util.Scanner;
public class arrJiami {
public static void main(String[] args) {
/*数据加密:
* 需求:键盘录入数据,要求数据是四位的整数,现需要对数据进行加密,加密规则如下:
* 每位数字都加上5,然后除以10的余数代替该数字,
* 再将第一位和第四位交换,第二位和第三位交换,
* 请把加密后的数据输出到控制台
分析:1.键盘录入的是四位数
* 2.将这四位数的每一位存储到数组中
* 3.对数组中的元素进行加密操作:
* 每位数字都加上5,然后除以10的余数代替该数字,
* 再将第一位和第四位交换,第二位和第三位交换,
4.输出出来 */
System.out.println("请任意输入一个四位数:");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
jiami(a);
}
public static void jiami(int a){
int[] arr=new int[4];
if(a>=1000&&a<10000){
for (int i=3,m=1;i>=0;i--,m=m*10){
arr[i]=a/m%10;
arr[i]=(arr[i]+5)%10;
if (m>1000){
break;}
}
for (int start=0,end=arr.length-1;start<=end;start++,end--){
int temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
}
System.out.print("数组内加密过得元素为:[");
for (int n=0;n<arr.length;n++){
if (n<arr.length-1){
System.out.print(arr[n]+",");
}else{
System.out.println(arr[n]+"]");
}
}
}else{
System.out.println("你的输入不合乎规范!");
}
}
}
//断点的练习
package mydebug;
import java.util.Scanner;
public class bugtest {
public static void main(String[] args) {
/*int sum=0;
for (int i=0;i<=10;i++){
sum+=i;
}
System.out.println(sum);
*/
System.out.println("请输入一个整数:");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
System.out.println("请输入第二个整数:");
int b=sc.nextInt();
int c=sum(a,b);
System.out.println(c);
}
public static int sum(int a,int b){
return a+b;
}
}```
```java
package mydebug;
public class Busishentu {
public static void main(String[] args) {
/* 需求:
* 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,
* 假如兔子都不死,问第二十个月的兔子对数为多少?*/
System.out.println("不死神兔第20个月的对数为:");
int[] arr=new int[20];
arr[0]=1;
arr[1]=1;
for (int i=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("arr[3]:"+arr[3]);
System.out.println(arr[19]);
}
}
package mydebug;
import java.util.Scanner;
public class debugtest01 {
public static void main(String[] args) {
System.out.println("根据月份判断季节小游戏!");
System.out.println("请输入1-12月中任意月份:");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
returnmonth(a);
}
public static void returnmonth(int a){
if (a>=3&&a<=5){
System.out.println(a+"月对应的季节是春季!");
}else if(a>=6&&a<=8){
System.out.println(a+"月对应的季节是夏季!");
}else if(a>=9&&a<=11){
System.out.println(a+"月对应的季节是秋季!");
}else if(a>=1&&a<=2||a==12){
System.out.println(a+"月对应的季节是冬季!");
}else{
System.out.println("你的输入有误!请输入1-12月份");
}
}
}
package mydebug;
public class huiwenshu {
public static void main(String[] args) {
/* 需求:打印5位数中的所有回文数。
什么是回文数呢?举例:12321是回文数,个位与万位相同,十位与千位相同。
*/
//分析:1.五位数,需要用到for循环 2.需要知道各自的个、十、千、万位并做逻辑判断
//代码如下:
System.out.println("欢迎您!你已进入打印回文数系统!");
for (int i=10000;i<100000;i++){
int ge=i%10;
int shi=i/10%10;
int qian=i/10/10/10%10;
int wan=i/10/10/10/10%10;
if (ge==wan&&shi==qian){
System.out.println(i+" ");
}
}
}
}
// 评委打分系统1.0版本
* 选手的最后得分为:去掉一个最高分和一个最低分后 其余4个分数的平均值。
* 请写代码实现。(不考虑小数部分)
*/
/*分析:
1.分数为键盘录入
2.需要遍历数组清除分数最大值max,最小值min
3.剩余数组元素求和,sum/4(小数不计)
*/
System.out.println("欢迎进入评委打分系统!");
int[] arr=new int[6];
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个评委的评分!");
arr[0]=sc.nextInt();
System.out.println("请输入第2个评委的评分!");
arr[1]=sc.nextInt();
System.out.println("请输入第3个评委的评分!");
arr[2]=sc.nextInt();
System.out.println("请输入第4个评委的评分!");
arr[3]=sc.nextInt();
System.out.println("请输入第5个评委的评分!");
arr[4]=sc.nextInt();
System.out.println("请输入第6个评委的评分!");
arr[5]=sc.nextInt();
int y=point(arr[0],arr[1],arr[2],arr[3],arr[4],arr[5]);
System.out.println("这个同学去掉两个最值分后的平均成绩为:"+y);
}
public static int point(int a,int b,int c,int d,int e,int f){
int[] arr={
a, b, c, d, e, f};
int max=arr[0];
for (int i=0;i<arr.length;i++) {
if (arr[i] >= max) {
max = arr[i];
}
}
int min=arr[0];
for (int j=1;j<arr.length;j++)
{
if (arr[j]<=min)
{
min=arr[j];
}
}
int chengji=(a+b+c+d+e+f-max-min)/4;
return chengji;
}
}
// 2.0版本
package mydebug;
import java.util.Scanner;
public class pingweidafen2 {
public static void main(String[] args) {
System.out.println("欢迎进入评委打分系统!");
int[] arr=new int[6];
Scanner sc=new Scanner(System.in);
for (int i=0;i<arr.length;i++){
System.out.println("请输入第"+(i+1)+"个分数");
arr[i]=sc.nextInt();
}
point(arr);
}
public static void point(int[] arr){
int max=arr[0];
int sum=0;
System.out.println("六位评委给出的成绩为");
for (int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
sum+=arr[i];
if (arr[i] >= max) {
max = arr[i];
}
}
System.out.println();
System.out.println("去掉一个最高分"+max);
int min=arr[0];
for (int j=1;j<arr.length;j++)
{
if (arr[j]<=min)
{
min=arr[j];
}
}
int a=(sum-max-min)/4;
System.out.println("去掉一个最低分"+min);
System.out.println("最终这位选手的成绩为:"+a);
}
}
package mydebug;
public class sumArr {
public static void main(String[] args) {
/* 需求:
* (1)定义一个int类型的一维数组,内容为{171,72,19,16,118,51,210,7,18}
* (2)求出该数组中满足要求的元素和。
* 要求:求和的元素的个位和十位不能包含7,并且只能为偶数。 */
System.out.println("欢迎进入数组元素求和系统!");
int[] arr = {
171,72,19,16,118,51,210,7,18};
int sum = 0;
for (int i = 0;i<arr.length;i++){
int ge = arr[i]%10;
int shi = arr[i]/10%10;
if (ge!=7 && shi!=7 && arr[i]%2==0){
sum+=arr[i];
}
}
System.out.println(sum);
}
}