2016-11-24 7 views
-2

ユーザ名を尋ねるコードを作成し、その範囲内の数字を取得するまで1から10の間の数字を尋ねてから、1から3までの数字を除いてユーザが入力した数字に数字をプリントするプログラムの冒頭に入力されたユーザーの名前です。例えば数は4だったと名前はトムが出力されますの場合:私は、第三の部分を行う方法を見つけ出すのに苦労してい連続した数字を出力するループですか?

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を入力し、あなたがこの前であればelse文を使用することができます10 10以上であるかどうかを確認するには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); 
    } 
} 

です。または、ユーザーが正しい答えを返すまでループ内で入力をラップすることができます。

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

無限ループにつながりますが、ユーザーに限られた試行回数を与えることができます。

+0

を試してみてください*私は、その範囲内の数を取得するまで、1と10の間の数を尋ね、* - ループ –

+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、ありがとう。 –

関連する問題