2016-11-24 121 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编辑,谢谢。 –