我用Eclipse编写一个这样的程序:计算1加到m的和。一下是我的程序(我特意复杂化),运行时出错,在for循环那一行提示:Line breakpoint:my [line: 10] - main(String[]),是什么意思啊,有什么解决方法吗? @SuppressWarnings("null")
public static void main(String[] arg) throws IOException{
int i,sum;
int arr[] = null;
System.out.print("Please input a number N:");
BufferedReader N=new BufferedReader(new InputStreamReader(System.in));
int m=N.read();
for(i=1,sum=0;i<=m;i++)
{
arr[0]=0;
arr[i]=arr[i-1]+1;
sum+=arr[i];
}
System.out.println("the sum of 1 to 10 is:"+sum);
}
}
public static void main(String[] arg) throws IOException{
int i,sum;
int arr[] = null;
System.out.print("Please input a number N:");
BufferedReader N=new BufferedReader(new InputStreamReader(System.in));
int m=N.read();
for(i=1,sum=0;i<=m;i++)
{
arr[0]=0;
arr[i]=arr[i-1]+1;
sum+=arr[i];
}
System.out.println("the sum of 1 to 10 is:"+sum);
}
}
1. int arr[] = null; 下面arr[0]会有空指针
2. int m=N.read(); 作为范围 0 到 65535 (0x00-0xffff) 的整数读入的字符 ,建议用:readLine();
3. 循环里面会有越界。
不知道我的想法和你是否一致
如果想让程序运行死不了,自己修改吧import java.io.*;
public class Test {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int m = Integer.parseInt(br.readLine());
long sum = 0;
for(int i=0;i<=m;i++) {
sum += i;
}
System.out.println("1+2+...+"+(m-1)+"+"+m+" = "+sum);
}
}
如果想让程序运行死不了,自己修改吧import java.io.*;
public class Test {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int m = Integer.parseInt(br.readLine());
long sum = 0;
for(int i=0;i<=m;i++) {
sum += i;
}
System.out.println("1+2+...+"+(m-1)+"+"+m+" = "+sum);
}
}
没有见你的异常空指针异常的原因是你这里为空
int arr[] = null;
再指一点 :
arr[0]=0; 没必要放循环里面
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int m = Integer.parseInt(br.readLine());
long sum = 0;
for(int i=0;i <=m;i++) {
sum += i;
}
System.out.println("1+2+...+"+(m-1)+"+"+m+" = "+sum);
}
2:用Integer.parseInt(br.readLine())把读取的数字强制转化一下;