断点的调试
作用1.查看程序的执行流程
2.调试程序
断点:就是一个标记<在代码左侧双击,取消加断点再来一次
或者debug视图breakpoints —remove>
断点必须加在有效的语句上
要想看被调用方法的执行流程,那么被调用方法也必须加断点
练习1:根据月份输出季节
Scanner sc=new Scanner(System.in);
System.out.println("请输入月份:(1-12)");
int mon=sc.nextInt();
if(mon>=1&&mon<4) {
System.out.println("该月份属于春季");
}
else if(mon>=4&&mon<7) {
System.out.println("该月份属于夏季");
}
else if(mon>=7&&mon<10) {
System.out.println("该月份属于秋季");
}
else if(mon>=10&&mon<=12) {
System.out.println("该月份属于春季");
}else {
System.out.println("您的输入有误");
}
}
练习2:打印回文
for(int i=10000;i<99999;i++) {
int a=i/10000;
int b=(i%10000)/1000;
int c=((i%10000)%1000)/100;
int d= (((i%10000)%1000)%100)/10;
int e=(((i%10000)%1000)%100)%10;
if(a==e&&b==d) {
System.out.println(i);
}
}
}
练习3:不死神兔问题
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[19]);
}
练习4:求满足要求的数组元素之和
int []arr= {171,72,19,16,118,51,210,7,18};
int sum=0;
for(int i=0;i<arr.length;i++) {
if(arr[i]>100) {if(((arr[i]%100)/10!=7&&arr[i]%10!=7)&&arr[i]%2==0)
sum=sum+arr[i];
}
else {if((arr[i]/10!=7&&arr[i]%10!=7)&&arr[i]%2==0) {
sum=sum+arr[i];
}}}
System.out.println(sum);
练习5:/在编程竞赛中,有六个评委给选手打分,0-100的整数fen
选手的最后得分为去掉一个最高分和最低分,其他四个评委的平均分
int []arr=new int[6];
Scanner sc=new Scanner(System.in);
System.out.println("请依次输出六位评委的成绩:(0-100)");
arr[0]=sc.nextInt();
arr[1]=sc.nextInt();
arr[2]=sc.nextInt();
arr[3]=sc.nextInt();
arr[4]=sc.nextInt();
arr[5]=sc.nextInt();
int max=arr[0];
int min=arr[0];
int sum=0;
for(int i=0;i<arr.length;i++) {
if(arr[i]>100||arr[i]<0) {
System.out.println("您的输入有误!!!!!");
break;}
else{if(max<arr[i]) {
max=arr[i];
}
if(min>arr[i]) {
min=arr[i];
}
}
}
System.out.println("最大值"+max+"最小值是:"+min);
for (int j=0;j<arr.length;j++) {
if(arr[j]!=max&&arr[j]!=min) {
sum=(sum+arr[j]);
}
}
int result=sum/4;
System.out.println("该名参赛选手的成绩为:"+result);
}
练习6:键盘录入五个int类型的数据存储到数组arr[]中
定义方法将arr数组中的内容反转
定义方法将数组中的内容遍历
int []arr=new int[5];
Scanner sc=new Scanner(System.in);
System.out.println("请分别输入五位数据:");
arr[0]=sc.nextInt();
arr[1]=sc.nextInt();
arr[2]=sc.nextInt();
arr[3]=sc.nextInt();
arr[4]=sc.nextInt();
NiXu(arr);
BianLi(arr);
}
public static void NiXu(int[]arr) {//实现逆序
for(int i=0;i<(arr.length)/2;i++) {
int temp=0;
temp=arr[i];
arr[i]=arr[arr.length-1];
arr[arr.length-1]=temp;
}
}
public static void BianLi(int[]arr) {//遍历
for (int i=0;i<arr.length;i++) {
System.out.println(arr[i]);
}
}
练习6://给定数组int[]arr={5,7,3,2,5};
//要查询的元素通过键盘录入的方式确定
//定义一个查找数组元素第一次出现的地方
int []arr= {5,7,3,2,5};
Scanner sc=new Scanner(System.in);
System.out.println("请输入您想查询的数据");
int data=sc.nextInt();
int result=GetPosition(arr,data);
System.out.println(result);
}
public static int GetPosition(int []arr,int data) {
for(int i=0;i<arr.length;i++) {
if (data==arr[i]) {
return i;}
}
return -1;
}
练习7:键盘录入数据,要求数据是四位整数,每位数字都加上5,然后除以10的余数代替该数字,然后第一位和第四位交换,第二位和第三位交换,把加密后的数据输出到控制台
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个四位数");
int data=sc.nextInt();
int a=data/1000;
int b=data%1000/100;
int c=data%1000%100/10;
int d=data%1000%100%10;
a=(a+5)%10;
b=(b+5)%10;
c=(c+5)%10;
d=(d+5)%10;
int temp1=0;
int temp=0;
temp1=a;a=d;d=temp1;
temp=b;b=c;c=temp;
int data1=a*1000+b*100+c*10+d;
System.out.println(data1);