待修改的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……