2016-11-24 123 views
-2

我應該建立一個要求用戶名的代碼,要求一個介於1到10之間的數字,直到我得到該範圍內的數字,然後從1打印數字到用戶輸入的數字,除了每三個數字應該是在程序開始時輸入的用戶名。例如,如果數字是4並且名稱是Tom,則輸出將是:For循環打印連續數字?

1 
    2 
    Tom 
    4 

我正在努力弄清楚如何完成第三部分。我寧願使用for循環。有人可以解釋我怎麼能做到這一點? 以下是我迄今爲止所做的(很少)。

import java.util.Scanner; 

/** 
* 
* @author Home 
*/ 
public class NewClass { 
    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 

     System.out.print("Enter your name: "); 
     String name = scan.nextLine(); 

     System.out.print("Please enter a number between 1 and 10: "); 
     number = scan.nextInt(); 

     while (number >= 1 && number <= 10) 

回答

0

試試這個

Scanner scan = new Scanner(System.in); 
System.out.print("Enter your name: "); 
String name = scan.nextLine(); 

System.out.print("Please enter a number between 1 and 10: "); 
int number = scan.nextInt(); 

//asks for a number between one and ten until I get number within that range, 
while (number < 1 || number > 10) { 
    System.out.print("No, between 1 and 10: "); 
    number = scan.nextInt(); 
} 


for (int i = 1; i <= number; i++) { 
    if (i % 3 == 0) { 
     System.out.print(name + " "); 
    } else { 
     System.out.print(i + " "); 
    } 
} 

輸出

Enter your name: Tom 
Please enter a number between 1 and 10: 21 
No, between 1 and 10: 7 
1 2 Tom 4 5 Tom 7 
1

這並不是難以實現與模運算符%和一個for循環。 %標誌基本上給出了一個部門的其餘部分。因此,例如12%3是0和13%3爲1

for(int i = 1; i < number ; i++){ 
    if(i%3 == 0) // This is the modulus operator, it gives the remainder 
    { 
    System.out.print(name); 
    } else { 
    System.out.print(i); 
    } 
} 

要檢查是否輸入是10十,你可以在此之前使用if else語句。或者你可以把你的輸入封裝在一個循環中,直到用戶給出正確的答案:

while (number < 1 || number > 10) { 
    System.out.print("Only accept numbers between 1-10"); 
    number = scan.nextInt(); 
} 

雖然它會導致無限循環。您可能會嘗試給用戶有限次數的嘗試。

+0

*詢問一到十之間的一個數字,直到我在該範圍內獲得數,* - 需要一個循環 –

+0

@ScaryWombat你沒有在代碼中看到for循環嗎? – Steephen

+0

@Steephen不確定你的評論是在哪裏發出的。當我發表評論時,沒有循環編碼 –

0
Scanner scan = new Scanner(System.in); 

    System.out.print("Enter your name: "); 
    String name = scan.nextLine(); 

    System.out.print("Please enter a number between 1 and 10: "); 
    int number = scan.nextInt(); 

    while (number < 1 || number > 10) { 
     System.out.print("Please enter a number between 1 and 10: "); 
     number = scan.nextInt(); 
    } 

    for (int i = 1; i <= number; i++) { 
     if (i % 3 == 0) { 
      System.out.print(name + " "); 
     } else { 
      System.out.print(i + " "); 
     } 
    } 
+1

謹防無限循環 –

+0

@ cricket_007編輯,謝謝。 –