不会吧??都是来顶的啊??呵呵,,谢谢大家捧场,小弟我对于这道题思路还是有一点的啊,我还不是很熟悉JAVA的格式,如果是C语言里面,可以单个字符单个字符的输入,然后再判断每个字符的值会不会超过ASCII码的值48~57..哪位高手可以把我的问题简单化一下?

解决方案 »

  1.   

    用异常处理加一个循环控制就行了,这是我改过的代码:import com.ms.wfc.io.Text;
    public class Class1
    {
    //private int a; //输入并要处理的正整数

    /**
     * getA()函数用来处理输入,如果输入的数为正整数,返回这个数,如果不是,则提示用户重新输入
     */
    public int getA()
    {
    boolean flag;
    int theA; while (!flag)
    {
    Text.out.write("请输入一个正整数“);
    String str = Text.in.readLine(); try
    {
    theA = Integer.parseInt(str);
    if ( theA>0 ) //如果是正整数,将跳出循环,返回theA的值
    {
    flag = true;
    }
    }
    catch (Exceiption e)
    { }
    } return theA;
    }
    /**
     * doWithA()函数:如果输入的数为奇数,则判断是否为质数;否则求1+2+3+…100
     */
    public void doWithA(int a) 
    {
    ////////////////////////////////////////////////////////////////
    //如果a为偶数,则求1+2+3+…100的和s。


       if(a%2==0)
       {
       Text.out.write(a + "为偶数!");
       int s = 0;
       for(int i=1;i<=100;i++)
       s = s+i;
       Text.out.writeLine("1+2+3+…100=" + s);
       Text.out.writeLine("(按回车继续……)");
       }//if
       
       
    ////////////////////////////////////////////////////////////////
    //如果a为奇数,则判断其是否为质数。
       
       
       else
       {
       Text.out.writeLine(a + "为奇数!");
       int i = a,tag = 0;//tag为判断质数的标记:0为质数,1则否。
       
       for(a=i/2;a>1;a--)
       {
       if(i%a==0)//若能出现整除的,则不为质数。
       {
       tag = 1;
       break;
       }//if
       }//for
       
       if(tag == 1) Text.out.write(i + "不是质数!");
       else Text.out.write(i + "是质数!");
       Text.out.writeLine("(按回车继续……)");
       }//else
       
       
    ////////////////////////////////////////////////////////////////
       
       Text.in.readLine();//看结果。
       
       
    }


    public static void main (String[] args)
    {

    /**
     * 输入一个正整数,如输入错误,则给出提示并重新输入
     **/
    int a = getA(); /**
     * 如果输入的数为奇数,则判断是否为质数;否则求1+2+3+…100
     **/
    doWithA(a);

    }//main
    }//class
      

  2.   

    hongyanyufei(鸿雁于飞) :谢谢你的回复!小弟利用吃饭的时间,也正好把问题解决了,呵呵,,不过解决的方法跟老兄您的比起来略显笨拙.有兴趣的朋友可以观摩一下.////////////////////////////////////////////////////////////////
    //输入一个正整数a。


    Text.out.write("请输入一个正整数:");
    String str = Text.in.readLine();
    int tag1 = 1;//判断输入错误的标记,1为错误,0为正确。


    ////////////////////////////////////////////////////////////////
    //如果输入错误,则给出提示并重新输入。


    while(tag1==1)//(此为判断a为负数的错误,问题是为实数为字符串怎么判断?!)
    {


    for(int p=0;p<str.length();p++)//for循环对字符串str里的字符逐个判断,p不超过串长。
    {
    if(str.charAt(p)<=48||str.charAt(p)>=57)//如果字符串里的字母的ASCII码值不在48~57之间,则是不整数。
    {
    tag1 = 1;//输入错误,则tag1赋值为1。
    break;
    }//if
    else tag1 = 0;//如果经过for循环检测输入无误,则tag1赋值为0。
    }//for


    if(tag1==1)//如果错误,则提示重新输入。
    {
    Text.out.write("输入错误!请重新输入一个正整数:");
    str = Text.in.readLine();
    }//if

    }//while 


    ////////////////////////////////////////////////////////////////
    //输入无误了,则转换成整型。


    int a = Integer.parseInt(str);