Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何使while循环只输出最后一行_Java_Loops_While Loop_Fibonacci - Fatal编程技术网

Java:如何使while循环只输出最后一行

Java:如何使while循环只输出最后一行,java,loops,while-loop,fibonacci,Java,Loops,While Loop,Fibonacci,刚刚开始学习java,所以这让我陷入了相当长的一段时间。这是一个输出斐波那契数列的程序。这里的目标是让程序只输出while循环的最后一行。我已经启动并运行了程序,只是在试图找出如何只输出序列的最后一行时遇到了麻烦 输入/输出示例 投入:5 输出: 斐波那契#3是:3 斐波那契4是:5 斐波那契5是:8 输出应如下所示: 斐波纳契ා5是:8 import javax.swing.JOptionPane; 公共类Fibonacci2{ 公共静态void main(字符串参数[]){ int n, 计

刚刚开始学习java,所以这让我陷入了相当长的一段时间。这是一个输出斐波那契数列的程序。这里的目标是让程序只输出while循环的最后一行。我已经启动并运行了程序,只是在试图找出如何只输出序列的最后一行时遇到了麻烦

输入/输出示例 投入:5

输出: 斐波那契#3是:3 斐波那契4是:5 斐波那契5是:8

输出应如下所示: 斐波纳契ා5是:8

import javax.swing.JOptionPane;
公共类Fibonacci2{
公共静态void main(字符串参数[]){
int n,
计数器=2,
总和
普雷文,
nextN;
字符串输入值;
inputValue=JOptionPane.showInputDialog(null,“输入大于2的数字:”,
JOptionPane.QUESTION_消息);
n=整数.parseInt(inputValue);
如果(n>=2)
计数器=2;
prevN=1;
nextN=2;
if(n<2)
System.out.println(“输入无效,请重试”);
while(计数器
把它放在循环外

while (counter < n){
sum = prevN + nextN;
prevN = nextN;
nextN = sum; 
counter++; 
}
System.out.println("Fibonacci #"+counter+" is: " + sum);
}
while(计数器
把它放在循环外

while (counter < n){
sum = prevN + nextN;
prevN = nextN;
nextN = sum; 
counter++; 
}
System.out.println("Fibonacci #"+counter+" is: " + sum);
}
while(计数器
你要做的唯一一件事就是把系统的.out.println(“Fibonacci#“+counter+”是:“+sum”)从循环中取出来,这样它只打印最后一个数字; 像这样:

while (counter < n)
   {
   sum = prevN + nextN;
   prevN = nextN;
   nextN = sum; 
   counter++;
   }
System.out.println("Fibonacci #"+counter+" is: " + sum);
while(计数器
你要做的唯一一件事就是把系统的.out.println(“Fibonacci#“+counter+”是:“+sum”)从循环中取出来,这样它只打印最后一个数字; 像这样:

while (counter < n)
   {
   sum = prevN + nextN;
   prevN = nextN;
   nextN = sum; 
   counter++;
   }
System.out.println("Fibonacci #"+counter+" is: " + sum);
while(计数器
问题的简单答案是,将
系统.out.println(“斐波那契#“+计数器+”是:“+sum”)语句在
while循环
上下文之外

while (counter < n) {
    sum = prevN + nextN;
    prevN = nextN;
    nextN = sum;
    counter++;
}

System.out.println("Fibonacci #" + counter + " is: " + sum);
此外,您的
if
语句值得关注

if (n >= 2)

counter = 2; 
prevN = 1;
nextN = 2;

if (n < 2) 
System.out.println("Invalid Input. Please Try Again.");

这使得代码更容易阅读和理解-但我头脑简单您的问题的简单答案是,移动
System.out.println(“斐波那契#“+计数器+”是:“+sum”)语句在
while循环
上下文之外

while (counter < n) {
    sum = prevN + nextN;
    prevN = nextN;
    nextN = sum;
    counter++;
}

System.out.println("Fibonacci #" + counter + " is: " + sum);
此外,您的
if
语句值得关注

if (n >= 2)

counter = 2; 
prevN = 1;
nextN = 2;

if (n < 2) 
System.out.println("Invalid Input. Please Try Again.");

这使得代码更容易阅读和理解-但是我头脑简单我为我的EGR类编写了一个类似的程序;其目标是输出给定位置的数字(序列从1开始),即p1=1、p2=1、p3=2、p4=3、p5=5、p6=8等

import java.util.Scanner;

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

System.out.println("Enter the Fibonacci Number's position.");
long n=keyboard.nextLong();
long sum, prevN=1, nextN=0, counter=1, last=0, lastnum;


    while (counter <= n) {
        sum = prevN + nextN;
        prevN = nextN;
        nextN = sum;
        if (n == counter)
        {
             System.out.println("Fibonacci #" + counter + " is: " + sum);
        }
        counter++;      
    }
    
    

}}
import java.util.Scanner;
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入斐波那契数的位置”);
long n=keyboard.nextLong();
长和,prevN=1,nextN=0,counter=1,last=0,lastnum;

而(counter我为我的EGR类编写了一个类似的程序;它的目标是输出给定位置的数字(序列从1开始),即p1=1、p2=1、p3=2、p4=3、p5=5、p6=8等

import java.util.Scanner;

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

System.out.println("Enter the Fibonacci Number's position.");
long n=keyboard.nextLong();
long sum, prevN=1, nextN=0, counter=1, last=0, lastnum;


    while (counter <= n) {
        sum = prevN + nextN;
        prevN = nextN;
        nextN = sum;
        if (n == counter)
        {
             System.out.println("Fibonacci #" + counter + " is: " + sum);
        }
        counter++;      
    }
    
    

}}
import java.util.Scanner;
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入斐波那契数的位置”);
long n=keyboard.nextLong();
长和,prevN=1,nextN=0,counter=1,last=0,lastnum;

while(counter)您是否尝试过将
System.out.println(“Fibonacci#“+counter+”是:“+sum”)
移到
System.exit(0);
语句的正上方(在循环之外)?我还担心您的
if
语句,而不是使用
{}
包含上下文意味着当
true
时只执行下一行,这似乎不是您的意图。如果您尝试过,它会告诉我:Fibonacci2.java:62:error:variable sum可能尚未初始化System.out.println(“Fibonacci#“+counter+”是:“+sum”)^当您创建变量引用时,将
sum,
更改为
sum=0,
成功了!非常感谢您的帮助!您是否尝试过将
System.out.println(“斐波那契#“+计数器+”是:“+sum”)
系统的正上方。退出(0);
语句(在循环之外)?我还关心您的
if
语句,而不是使用
{}
包含上下文意味着当
true
时只执行下一行,这似乎不是您的意图。如果您尝试过,它会告诉我:Fibonacci2.java:62:error:variable sum可能尚未初始化System.out.println(“Fibonacci#“+counter+”是:“+sum”)创建变量引用时,
sum,
更改为
sum=0,
成功了!非常感谢您的帮助!我尝试了此操作,但却发现了以下错误:Fibonacci2.java:62:error:variable sum可能尚未初始化System.out.println(“斐波那契#“+计数器+”是:“+sum”)^@JakeSchlott在开始时必须给sum赋值,因为如果n=0 w