断点调试:
- 1-查看程序的执行流程
- 2-调试程序
package com.debug;
import java.util.Scanner;
/*
* 进入debug界面,程序向下一步执行点击step over
* 代码区域-看程序的执行流程
* debug区域-看程序的执行流程
* Variables-看变量的变化
* Console-看程序的输入和输出
*
* 去掉多个断点再debug视图中找到Breakpoints
*/
public class DebugDemo {
public static void main(String[] args) {
// TODO
// int a =10;
// int b =20;
// int c =a+b;
// System.out.println(c);
int sum =0;
for (int x=1;x<=5;x++) {
sum+=x;
}
System.out.println(sum);
//求和方法的调用
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个数据:");
int x = sc.nextInt();
System.out.println("请输入第二个数据:");
int y = sc.nextInt();
int result = sum(x,y);
System.out.println("result:"+result);
}
//在对函数的调用过程中进行断点调试时,要在主函数和调用函数两个函数加断点
public static int sum(int a,int b) {
int c=a+b;
return c;
}
}
问题1-录入月份,输出所属季节
package com.debug;
/*
* 键盘录入月份,输出对应的季节
* 3,4,5-chun
* 6,7,8-xia
* 9,10,11-qiu
* 12,1,2-dong
*
*/
import java.util.Scanner;
public class DebugTest {
public static void main(String[] args) {
// TODO
Scanner sc= new Scanner(System.in);
//接收数据
System.out.println("输入月份(1-12):");
int month =sc.nextInt();
switch (month) {
case 1:
System.out.println("冬季");
break;
case 2:
System.out.println("冬季");
break;
case 3:
System.out.println("春季");
break;
case 4:
System.out.println("春季 ");
break;
case 5:
System.out.println("春季");
break;
case 6:
System.out.println("夏季");
break;
case 7:
System.out.println("夏季");
break;
case 8:
System.out.println("夏季");
break;
case 9:
System.out.println("秋季");
break;
case 10:
System.out.println("秋季");
break;
case 11:
System.out.println("秋季");
break;
case 12:
System.out.println("冬季");
break;
default:
System.out.println("请输入有效数字!");
break;
}
}
}
问题2-打印回文数
package com.debug;
/*
* 打印5位数中的回文数-获取每一个位上的数字
* 个位-%10
* 十位-/10%10
* 千位-/10/10/10%10
* 万位-/10/10/10/10%10
*/
import java.util.Scanner;
public class DebugTest1 {
public static void main(String[] args) {
// TODO
for(int x=10000;x<100000;x++) {
int ge =x%10;
int shi =x/10%10;
int qian =x/10/10/10%10;
int wan =x/10/10/10/10%10;
if (ge==wan&&shi==qian) {
System.out.println("回文数:"+x);
}
}
}
}
问题3-对符合要求的数组元素求和
package com.debug;
/*
* 满足要求的数组元素求和
* 需求-int类型的数组{171,72,19,16,118,51,210,7,18}
* 求和-元素的十位和个位不能包含7,并且只能为偶数
*/
public class DebugTest3 {
public static void main(String[] args) {
// TODO
int[] arr = {171,72,19,16,118,51,210,7,18};
int sum=0;
for (int x=0;x<arr.length;x++) {
int y = arr[x];
if(y%10!=7&&y/10%10!=7&&y%2==0) {
sum = sum+y;
}
}
System.out.println(sum);
}
}
问题4-打分问题
package com.debug;
/*
* 评委打分:6个评委 分数0-100
*/
import java.util.Scanner;
public class DebugTest4 {
public static void main(String[] args) {
double[] arr =new double[6];
Scanner sc= new Scanner(System.in);
System.out.println("请评委打分-");
//打分循环
for (int x=0;x<arr.length;x++) {
System.out.println("请打分-");
double score=sc.nextDouble();
arr[x]=score;
}
//求最值循环
double max=arr[0];
double min=arr[0];
for (int x=1;x<arr.length;x++) {
if (arr[x]>max) {
max=arr[x];
}
}
for (int x=1;x<arr.length;x++) {
if (arr[x]<min) {
min=arr[x];
}
}
//求平均分
double zhi=0;
double jun=0;
for (int x=0;x<arr.length;x++) {
zhi+=arr[x];
}
jun=(zhi-max-min)/(arr.length-2);
System.out.println("选手最终得分为:"+jun);
}
}
问题5-数组反转问题
package com.debug;
import java.util.Scanner;
/*
* 数组反转-键盘录入5个int类型的数组
* 进行反转遍历
*/
public class DebugTest5 {
public static void main(String[] args) {
// TODO
Scanner sc= new Scanner(System.in);
int[] arr = new int[5];
//赋值操作
for (int x=0;x<arr.length;x++) {
System.out.println("请对第"+(x+1)+"个元素进行赋值");
int demo = sc.nextInt();
arr[x]=demo;
}
//反转函数
reverse(arr);
//遍历
for (int x=0;x<arr.length;x++) {
System.out.println(arr[x]);
}
}
public static void reverse(int[] arr) {
int temp=0;
for (int x=0;x<(arr.length/2);x++) {
temp=arr[x];
arr[x]=arr[arr.length-1-x];
arr[arr.length-1-x]=temp;
}
}
}
问题6-数据加密问题
package com.debug;
import java.util.Scanner;
/*
* 数据加密
* 输入4位的整数
* 每位数字加5,然后除10的余数代替该数字
* 第一位与第四位交换,二三位交换
* 输出加密后的数据
* liucheng-
* 1-录入
* 2-定义长度位4的数组
* 3-加密
*/
public class DebugTest6 {
public static void main(String[] args) {
// TODO
Scanner sc=new Scanner(System.in);
System.out.println("请输入四位整数:");
int num=sc.nextInt();
int[] arr =new int[4];
arr[0]=num/10/10/10%10;
arr[0]=num/10/10%10;
arr[0]=num/10%10;
arr[0]=num%10;
//加密
for (int x=0;x<arr.length;x++) {
arr[x]+=5;
arr[x]%=10;
}
int temp=0;
arr[0]=arr[3];
arr[3]=temp;
temp=arr[1];
arr[1]=arr[2];
arr[2]=temp;
for (int x=0;x<arr.length;x++) {
System.out.print(arr[x]);
}
}
}
问题7-不死神兔问题
package com.debug;
/*
* 不死神兔问题-出生后的兔子从第三个月开始每个月都省一对兔子假设兔子都不死问20个月后兔子的有多少对
* 规律- 1月-1
* 2月-1
* 3月-2
* 4月-3
* 5月-5
*
*/
public class DegbugTest2 {
public static void main(String[] args) {
// TODO
int[] arr =new int[20];
//赋值
arr[0]=1;
arr[1]=1;
for(int x=2;x<arr.length;x++) {
arr[x]=arr[x-1]+arr[x-2];
}
System.out.println("二十个月之后的兔子有"+arr[19]+"对");
}
}