2010-09-28 41 views
0
package myProg; 
import java.util.Scanner; 
public class oving4a { 

    /** 
    *Øving 4a. Aleksander Pettersen 
    */ 
    public static void main(String[] args) { 
     Scanner scan = new Scanner (System.in); 
     int i; 
     int count = 0; 
     String another = "y"; 
     double symbol =(1+Math.random()*100); 
     int svar = (int) symbol; 
     System.out.println("Tipp et tall:"); 
     i = scan.nextInt(); 
     while (another.equalsIgnoreCase("y")){ 
      while (i != svar){ 
       if (i < 1 | i > 100) 
        System.out.println("Vennligst velg et tall mellom 1 - 100"); 
       else 
       { 
        count++; 
        if(i > svar) 
         System.out.println("Beklager! Mitt tall er mindre. Prøv igjen."); 
        else 
         System.out.println("Beklager! Mitt tall er større. Prøv igjen."); 
        i = scan.nextInt(); 
       } 
      } 
     } 
     System.out.println("Gratulerer! \n Du klarte det på " +count + " forsøk. Vil du prøve en gang til(j/n)?"); 
     another = scan.nextLine(); 
    } 

} 

如果我運行它與equalsIgnoreCase,它會凍結,當我猜測正確的問題。 如何在此程序中實現「再次嘗試(j/n)」?Java - 如何讓「再試一次(j/n)」工作

+1

http://stackoverflow.com/questions/3811356/whats-the-problem-with-this-code/3811768#3811768 – Emil 2010-09-28 11:31:43

+0

我不明白爲什麼今天這再次嘗試是/否需求太大。只要檢查上面的鏈接類似的問題。 – Emil 2010-09-28 11:32:56

+2

@Emil,還沒有剛開始學校? – 2010-09-28 11:34:11

回答

0

你有這樣的代碼

String another = "y"; 
... 
while (another.equalsIgnoreCase("y")) { 
    ... 
} 
another = scan.nextLine(); 

這是唯一可能another設置爲比while循環的「Y」之外的其他值。 while循環內沒有任何內容會將條件another.equalsIgnoreCase("y")更改爲false

+0

馬特是正確的:移動循環內的最後兩條語句(並且用「j」替換「y」,因爲它是德語的) – 2010-09-28 12:24:46

+0

@Mauri German?你確定(j/n)? – bzlm 2010-09-28 12:26:09

+0

@bzlm(n)是正確的答案。 [Beklager!米特高興地說道。 Prøvigjen。](http://translate.google.com/#auto|en|Beklager!%20Mitt%20tall%20er%20mindre.%20Pr%C3%B8v%20igjen。) – 2010-09-28 12:40:09