2016-07-23 28 views
-1

我正在寫一個java代碼來編寫一個文本文件,並且我正在打印輸出以查看所有條件是否正確,有些情況下輸出是正確的並且一些不正確相同的條件。 的情況是:輸出有時是正確的和錯誤的

bpup >= 14 => out1 = 0 out 2 = 0 

bpdown >= 9 => out1 = 0 out 2 = 1 

bpup > 14 and bpdown > 9 => out1 = 1 out2 = 0 

bpup > 14 and bpdown > 9 and pulse <60 => out1 = 1 out2 = 1 

這裏是我的代碼:

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 

package pfetext; 

import java.io.BufferedWriter; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.util.Random; 

/** 
* 
* @author user 
*/ 
public class PFEtext { 

    /** 
    * @param args the command line arguments 
    */ 

    static int i = 10; 
    static int out1; 
    static int out2; 

    public static void main(String[] args) throws IOException { 
     // TODO code application logic here 
    int bpup; 
    int bpdown; 
    int pulse; 
    int O2;  
     FileWriter fw=new FileWriter("C:\\Users\\user\\Desktop\\pfe.txt"); 
     BufferedWriter bw= new BufferedWriter(fw); 
     do { 
     Random p = new Random(); 
     bpup = p.nextInt(23 - 3) + 3 ; 
     bpdown = p.nextInt(17 - 4) + 4 ; 
     pulse = p.nextInt(150 - 30) + 30 ; 
     O2 = p.nextInt(100 - 40) + 40; 

     //Epistaxis 
     if(bpup >= 14){ 
     out1 = 0; 
     out2 = 0; 
     System.out.println("========== CASE EPISTACSIS =========="); 
     System.out.println("BPUP " + bpup + " " + "BPDOWN " + bpdown + " " + "PULSE " + pulse + " " + "OUT1 " + out1 + " " + "OUT2 " + out2); 
//   bw.write(bpup + "," + bpdown + "," + pulse + "," + O2 + "," + out1 + "," + out2); 
//   bw.newLine(); 
     } 

     //Blackout 
     if(bpdown >= 9){ 
     out1 = 0; 
     out2 = 1; 
     System.out.println("========== CASE BLACKOUT =========="); 
     System.out.println("BPUP " + bpup + " " + "BPDOWN " + bpdown + " " + "PULSE " + pulse + " " + "OUT1 " + out1 + " " + "OUT2 " + out2); 
//   bw.write(bpup + "," + bpdown + "," + pulse + "," + O2 + "," + out1 + "," + out2); 
//   bw.newLine(); 
     } 

     //Epistaxis and Blackout 
     if(bpup >= 14 && bpdown > 9){ 
     out1 = 1; 
     out2 = 0; 
     System.out.println("========== CASE EPISTACSIS & BLACKOUT =========="); 
     System.out.println("BPUP " + bpup + " " + "BPDOWN " + bpdown + " " + "PULSE " + pulse + " " + "OUT1 " + out1 + " " + "OUT2 " + out2); 
//   bw.write(bpup + "," + bpdown + "," + pulse + "," + O2 + "," + out1 + "," + out2); 
//   bw.newLine(); 
     } 

     //Numbness 
     if(bpup >= 15 && bpdown >= 9 && pulse <= 60){ 
     out1 = 1; 
     out2 = 1; 
     System.out.println("========== NUMBNESS =========="); 
     System.out.println("BPUP " + bpup + " " + "BPDOWN " + bpdown + " " + "PULSE " + pulse + " " + "OUT1 " + out1 + " " + "OUT2 " + out2); 
//   bw.write(bpup + "," + bpdown + "," + pulse + "," + O2 + "," + out1 + "," + out2); 
//   bw.newLine(); 
     } 
     i--; 
     }while(i>0); 


     bw.write(bpup + "," + bpdown + "," + pulse + "," + O2 + "," + out1 + "," + out2); 
     bw.newLine(); 

     bw.close();  
    } 

} 

這是輸出:

========== CASE BLACKOUT ========== 
// correct 
BPUP 9 BPDOWN 12 PULSE 106 OUT1 0 OUT2 1 

========== CASE BLACKOUT ========== 
// correct 
BPUP 8 BPDOWN 11 PULSE 145 OUT1 0 OUT2 1 

========== CASE BLACKOUT ========== 
//correct 
BPUP 7 BPDOWN 15 PULSE 103 OUT1 0 OUT2 1 

========== CASE BLACKOUT ========== 
// incorrect should be epistaxis and blackout 
BPUP 13 BPDOWN 12 PULSE 145 OUT1 0 OUT2 1 

========== CASE EPISTACSIS ========== 
//correct 
BPUP 18 BPDOWN 7 PULSE 125 OUT1 0 OUT2 0 

========== CASE EPISTACSIS ========== 
// incorrect should be epistaxis and blackout 
BPUP 18 BPDOWN 11 PULSE 109 OUT1 0 OUT2 0 

========== CASE BLACKOUT ========== 
// incorrect should be epistaxis and blackout 
BPUP 18 BPDOWN 11 PULSE 109 OUT1 0 OUT2 1 

========== CASE EPISTACSIS & BLACKOUT ========== 
// correct 
BPUP 18 BPDOWN 11 PULSE 109 OUT1 1 OUT2 0 

========== CASE BLACKOUT ========== 
// correct 
BPUP 3 BPDOWN 9 PULSE 107 OUT1 0 OUT2 1 

========== CASE BLACKOUT ========== 
//correct 
BPUP 10 BPDOWN 10 PULSE 114 OUT1 0 OUT2 1 
+0

哪種情況你得到錯誤的答案?你有沒有嘗試調試你的代碼? – SMA

+3

你是否意識到你的4個條件不是互斥的?這意味着對於相同的輸入,可以有多個條件成立。爲了避免這種情況,考慮使用if ... else if ... else if ... – Eran

+0

謝謝Eran,我犯了一個愚蠢的錯誤,我修復了代碼並得到了期望的結果 – qwerty12345

回答

0

從我所看到的你,有什麼不對的不平等:

//Epistaxis and Blackout 
    if (bpup >= 14 && bpdown > 9) { 

爲真也是bpup = 14,而你說它必須僅針對bpup> 14.

此外爲真:

//Numbness 
    if (bpup >= 15 && bpdown >= 9 && pulse <= 60) { 

爲脈衝= 60爲真,而你說只能是真實對於脈衝< 60和 對於bpdown = 9是正確的,而你說它必須是真的只適用於bpdown> 9

相關問題