软件测试

 今天做了个三角形的软件测试,很奇怪,程序应该是没有问题的

  当我先输入了一个一组数据使不能成为三角形,接下来我又输入一组不合法的数据时,输出的内容是:输入边的值超出规定的范围 不是三角形,本来只应该输出“输入边的值超出规定的范围”的,这个问题现在还没明白

  代码如下:

     

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;
    }


}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值