因此,我应该编写一个程序来检查输入的值是否可以被2、3、4、5、6、8和/或9整除。
运行此程序时出现红色错误。这是一个超出范围的索引异常,它说
“ at Divisibility.div2(Divisibility.java:29) at Divisibility.main(Divisibility.java:11)
我该如何解决?
import java.util.*;
public class Divisibility
{
public static void main(String[]args)
{
Scanner scan=new Scanner(System.in);
System.out.println("Enter number: ");
int num=scan.nextInt();
ArrayList<Integer>di=new ArrayList<Integer>();
ArrayList<String>a=new ArrayList<String>();
div2(di);
div3(di);
div4(num);
div5(di);
div6(di);
div8(num);
while(num>0)
{
di.add(num%10);
num/=10;
}
for(int i=0;i<di.size();i++)
{
a.add(""+di.get(i));
}
}
public static void div2(ArrayList<Integer> arr)
{
if(arr.get(0)==2||arr.get(0)==4||arr.get(0)==6||arr.get(0)==8||arr.get(0)==0)
{
System.out.println("Divisible by 2");
}
}
public static void div3(ArrayList<Integer> ar1)
{
int t=0;
for(int i=0;i<ar1.size();i++)
{
t+=ar1.get(i);
if(t%3==0)
{
System.out.println("Divisible by 3");
i=ar1.size();
}
}
}
public static void div4(int br)
{
String str=Integer.toString(br);
String str2=str.substring(str.length()-2,str.length());
int r=Integer.parseInt(str2);
if(r%4==0)
System.out.print("Divisible by 4");
}
public static void div5(ArrayList<Integer> ah)
{
if(ah.get(0)==0||ah.get(0)==5)
{
System.out.println("Divisible by 5");
}
}
public static void div6(ArrayList<Integer> q)
{
int l=0;
for(int i=0;i<q.size();i++)
{
l+=q.get(i);
if(l%3==0&&(q.get(0)==2||q.get(0)==4||q.get(0)==6||q.get(0)==8||q.get(0)==0))
{
System.out.print("Divisible by 6");
i=q.size();
}
}
}
public static void div8(int na)
{
String str1=Integer.toString(na);
String str3=str1.substring(str1.length()-3,str1.length());
int rr=Integer.parseInt(str3);
if(rr%8==0)
System.out.print("Divisible by 8");
}
public static void div9(ArrayList<Integer> bruh)
{
int y=0;
for(int i=0;i<bruh.size();i++)
{
y+=bruh.get(i);
if(y%9==0)
{
System.out.println("Divisible by 9");
i=bruh.size();
}
}
}
}
最佳答案
调用div2
方法时,尚未向其中添加任何内容
ArrayList<Integer>di=new ArrayList<Integer>();
这只是一个声明。
您不添加,直到
while(num>0)
{
di.add(num%10);
num/=10;
}
此添加需要在调用
div?
方法之前完成