控制台工程问题! 不会吧??都是来顶的啊??呵呵,,谢谢大家捧场,小弟我对于这道题思路还是有一点的啊,我还不是很熟悉JAVA的格式,如果是C语言里面,可以单个字符单个字符的输入,然后再判断每个字符的值会不会超过ASCII码的值48~57..哪位高手可以把我的问题简单化一下? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用异常处理加一个循环控制就行了,这是我改过的代码: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 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); java计算节假日,周末 请教MANIFEST.MF 文件的使用详细资料 脱离技术太久,看看大家都用些什么框架做开发啊?(老版主回来散分啦!) 线程池,数据库连接池 问题~ 界面显示的问题! 易道模型中应用了哪些JAVA技术? 菜问:关于 File(String pathname)中的pathname 不耻下问!!! 想学JAVA但是一点不懂,求助! JAVA 2核心技术那一套有电子版吗?书太贵了。 用RandomAccessFile类写出文件,而在文件中却没有写入? 请问\jdk\lib\下的这个dt.jar文件有什么作用?要什么场合下用得到?
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
//输入一个正整数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);