待修改的java程序
麻烦各位帮我看看这个程序到底错在什么地方,具体思路是从键盘接收一个int型的数赋给num,p1调用jiech方法计算,代码如下:
import java.io.*;
public class People {
public static void main(String args[]){
int num;
try{
System.out.print("请输入一个数:");
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
num=Integer.parseInt(input.readLine());
}catch(
IOException e){}
People p1=new People();
p1.jiech(num);
}
public void jiech(int i){
for(int j=1;j<=i;j++){
for(int n=1;n<=j;n++){
System.out.print(n+"*"+j+"="+n*j+" ");
}
System.out.println();
}
}
}
------解决方案--------------------用Scanner实现吧,这个类更合适
Java code
import java.io.*;
import java.util.Scanner;
public class People {
public static void main(String args[]){
int num=0;
try{
System.out.print("请输入一个数:");
// BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
// num=Integer.parseInt(input.readLine());
Scanner scanner=new Scanner(System.in);
num=scanner.nextInt();
}catch(Exception e){
e.printStackTrace();
}
People p1=new People();
p1.jiech(num);
}
public void jiech(int i){
for(int j=1;j<=i;j++){
for(int n=1;n<=j;n++){
System.out.print(n+"*"+j+"="+n*j+" ");
}
System.out.println();
}
}
}
------解决方案--------------------
------解决方案--------------------
你上面的程序没有什么特别大的问题,只是int num;没有给出初始化的值 ,在一些编辑器不让编译通过,改成int num=0;
Scanner是JDK里面专门为扫描数据给出的一个类,配合System.in对象可以扫描控制台的输入,具体你可以查看JDK里面 Scanner的API
------解决方案--------------------
楼主你的代码编译是有错,报:“可能尚未初始化变量 num”,你只要将num初始化
为0就行,其他逻辑部分没有错吧,至于采用什么方式输入,这个随便的。
至于为什么可能会导致num未被初始化,原因就是在使用IO进行输入时可能会有IOException,
故还未运行到num = Integer.xxx这一行程序就从try块跳到了catch块,所以,so……