0

私のプログラムは、ユーザーが入力した内容に基づいてフィボナッチ数を出力することになっています (たとえば、7 を入力すると、プログラムは 13 を出力します)。この部分は機能します。私が問題を抱えているのは、ユーザーが入力した数値が正で70以下であることをプログラムがチェックするときです。ユーザーに再度入力を求めるはずですが、代わりに「Fibonacci #-1」を出力します0」で停止します。これが私のコードです:

import java.util.Scanner;

public class scalvert_Fibonacci
{
public static void main ( String args[] ) 
{
    Scanner input = new Scanner ( System.in );

    int sum = 0;
    int num;
    int f1 = 0, f2 = 0, f3 = 1;

    System.out.print("Which Fibonacci number would you like? ");
    num = input.nextInt(); 

    if (num == 0)
    return 0;

    else if (num == 1)
    return 1;

    while (num < 0 || num > 70)
    {
        System.out.print("Which Fibonacci number would you like? ");
        num = input.nextInt(); 
    }

        for(int i = 1; i <= num; i++)
        {
                f1 = f2;
                f2 = f3;
                f3 = f1 + f2;
        }
        System.out.printf("Fibonacci #%d is %d\n",num, f2);
}
}
4

2 に答える 2

0

私はそれを考え出した。

while(num < 0 || num > 70)
    {
        System.out.print("Which Fibonacci number would you like? ");
        num = input.nextInt(); 
    }
于 2013-04-09T08:19:49.647 に答える
0

これを使用すると、問題が解決する場合があります

if(num<0 || num>70)
{
    //ask a number again
}
else
{
    //calculate
}

or use this

if( 0 < num < 71 )
{
    //calculate
}
else
{
     //ask for a valid number
}
于 2013-04-09T07:46:02.733 に答える