Java:如何使while循环只输出最后一行
刚刚开始学习java,所以这让我陷入了相当长的一段时间。这是一个输出斐波那契数列的程序。这里的目标是让程序只输出while循环的最后一行。我已经启动并运行了程序,只是在试图找出如何只输出序列的最后一行时遇到了麻烦 输入/输出示例 投入:5 输出: 斐波那契#3是:3 斐波那契4是:5 斐波那契5是:8 输出应如下所示: 斐波纳契ා5是:8Java:如何使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, 计
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