2017-04-15 8 views
0

すべての数値を取得して(......)に印刷したいが、それはできない。私を助けてもらえますか?for-loopから値を取得していますか?

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    Scanner keyboard = new Scanner(System.in); 
    int operands,num; 
    int q=1; 
    int a=0; 

    do 
    { 
     System.out.println("Enter the number of operands (in range 2-10):"); 
     operands=keyboard.nextInt();    
    } while ((operands<2) || (operands>10)); 

    for (int number=1; number<=operands; number++) 
    { 
     System.out.println("Enter number "+number+":"); 
     num=keyboard.nextInt(); 
     q=q*num; 
    } 

    System.out.print("Multiplication of numbers "+(.......)+" is: "+q); 
+2

を得ました。 –

+0

(範囲2-10で)オペランドの数を入力します。番号2を入力し:番号3入力:番号1を入力しを数字の乗算することである:6000、これは出力されなく私は数20 30 10の倍数は:6000 –

答えて

1

あなたがループする前に宣言し、追加の文字列変数を使用してください:

String numbers=" "; 

を、ループ本体にそれに追加します。

numbers += num+" "; 

、その後の代わりにこの文字列を印刷(.......)

+0

これが正しい解決策だと思います期待しています。 (+1) –

2

私はFranzKnutの答えが好きですが、パフォーマンスが問題であれば、そうでなくても代わりに文字列ビルダーの使用を検討してください。ループ内

ループ使用の前に

StringBuilder sb = new StringBuilder("my numbers are: "); 

次のコードを追加します。

sb.append(num); 

はその後、ループの終わりには、単に新たな付加番号のプログラムおよび連結に文字列を追加し

System.out.println(sb.toString()); 
+0

文字列の作成者はもちろん行く方法 – FranzKnut

+0

私はその数字を一つずつ得ることができる方法です。順序ではない –

0

のようなものを持っています。最後に、印刷しなければならない文字列を印刷します。ここ

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    Scanner keyboard = new Scanner(System.in); 
    int operands, num; 
    int q = 1; 
    int a = 0; 
    String s = " "; 
    do { 
     System.out.println("Enter the number of operands (in range 2-10):"); 
     operands = keyboard.nextInt(); 
    } while ((operands < 2) || (operands > 10)); 


    for (int number = 0; number <= operands - 1; number++) { 
     System.out.println("Enter number " + number + ":"); 
     num = keyboard.nextInt(); 
     s = s + num; 
     q = q * num; 
    } 



    System.out.print("Multiplication of" + s + " numbers is: " + q); 
} 
0

OK、あなたがより具体的にする必要があります

import java.util.ArrayList; 
import java.util.List; 
import java.util.Scanner; 

public class Numbers { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Scanner keyboard = new Scanner(System.in); 
     int operands,num; 
     int q=1; 
     int a=0; 
     List<Integer> numbers = new ArrayList<Integer>(); 
     int newNumbers = 1; 

     do 
     { 
      System.out.println("Enter the number of operands (in range 2-10):"); 
      operands=keyboard.nextInt();   

     } while ((operands<2) || (operands>10)); 

     for (int number=1; number<=operands; number++) 
     { 
      System.out.println("Enter number "+number+":"); 
      num=keyboard.nextInt(); 
      q=q*num; 
      numbers.add(num); 
     } 
     StringBuilder newTextNumber = new StringBuilder(""); 
     for(Integer s: numbers){ 
      newTextNumber.append(s).append(" "); 
      newNumbers *= s; 
     } 


     System.out.print("Multiplication of numbers "+newTextNumber+" is: "+newNumbers); 
    } 
} 

Enter the number of operands (in range 2-10): 
3 
Enter number 1: 
20 
Enter number 2: 
30 
Enter number 3: 
10 
Multiplication of numbers 20 30 10 is: 6000 
+0

私はその数字を一つずつ得ることができる方法は何ですか。次のようにしてください。 –

+0

for(Integer s:numbers){ newTextNumber.append(s).append( ""); newNumbers * = s; } – Yussef

関連する問題