待修改的java程序,该怎么处理
待修改的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实现吧,这个类更合适
麻烦各位帮我看看这个程序到底错在什么地方,具体思路是从键盘接收一个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……