今天做了个三角形的软件测试,很奇怪,程序应该是没有问题的
当我先输入了一个一组数据使不能成为三角形,接下来我又输入一组不合法的数据时,输出的内容是:输入边的值超出规定的范围 不是三角形,本来只应该输出“输入边的值超出规定的范围”的,这个问题现在还没明白
代码如下:
package software;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Triangle ...{

/** *//**
* @param args
*/
public static void main(String[] args) ...{
// TODO Auto-generated method stub
// 三角形的三条边
int a = 0;
int b = 0;
int c = 0;
// 输出的消息
String msg = "";

while (true) ...{
System.out.println("请输入三角形的三条边");
// 从控制台输入3条边
for (int i = 0; i < 3; i++) ...{
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader buffer = new BufferedReader(input);
try ...{
if (i == 0)
a = Integer.parseInt(buffer.readLine());
else if (i == 1)
b = Integer.parseInt(buffer.readLine());
else if (i == 2)
c = Integer.parseInt(buffer.readLine());
} catch (Exception er) ...{
er.printStackTrace();
}
}
// System.out.println("a:" + a + "b:" + b + "c:" + c);
// 判断输入边的值是否超出规定的范围
if (a < 1 || a > 200)
System.out.println("输入边的值超出规定的范围");
else if (b < 1 || b > 200)
System.out.println("输入边的值超出规定的范围");
else if (c < 1 || c > 200)
System.out.println("输入边的值超出规定的范围");
// 判断是什么三角形
else if (isTriangle(a, b, c) == false)
msg = "不是三角形";
else if (isEquilateralTriangle(a, b, c) == true)
msg = "等边三角形";
else if (isocelesTriangle(a, b, c) == true)
msg = "等腰三角形";
else
msg = "不等边三角形";
printMsg(msg);
}
}

/** *//**
* 输出三角形信息
*
* @param :
* msg,输出的信息
* @return :无
*/
public static void printMsg(String msg) ...{
System.out.println(msg);
}

/** *//**
* 是不是三角形
*
* @param :
* a ,第一条边 b,第二条边 c,第三条边
* @return :是否是三角形
*/
public static boolean isTriangle(int a, int b, int c) ...{
boolean flag = false;
// 判断是否是三角形
if (a + b <= c)
flag = false;
else if (a + c <= b)
flag = false;
else if (b + c <= a)
flag = false;
else
flag = true;
return flag;
}

/** *//**
* 是不是等边三角形
*
* @param :
* a ,第一条边 b,第二条边 c,第三条边
* @return :是否是等边三角形
*/
public static boolean isEquilateralTriangle(int a, int b, int c) ...{
boolean flag = true;
if (a == b && b == c)
flag = true;
else
flag = false;
return flag;
}

/** *//**
* 是不是等腰三角形
*
* @param :
* a ,第一条边 b,第二条边 c,第三条边
* @return :是否是等腰三角形
*/
public static boolean isocelesTriangle(int a, int b, int c) ...{
boolean flag = true;
if (a == b || b == c || a == c)
flag = true;
else
flag = false;
return flag;
}
}
6193

被折叠的 条评论
为什么被折叠?



