使用两个循环,但只有一个循环通过。计算机科学导论(Java)
所以我试图创建一个简单的股票计划。我的第一个循环工作,但它不会传递到我的第二个循环,我不知道为什么。我尝试过中断和if语句,但我无法理解使用两个循环,但只有一个循环通过。计算机科学导论(Java),java,Java,所以我试图创建一个简单的股票计划。我的第一个循环工作,但它不会传递到我的第二个循环,我不知道为什么。我尝试过中断和if语句,但我无法理解 days = JOptionPane.showInputDialog("Enter the number of days in the stock period"); //Allows user to enter value sharePoints = JOptionPane.showInputDialog("Enter the share points on
days = JOptionPane.showInputDialog("Enter the number of days in the stock period"); //Allows user to enter value
sharePoints = JOptionPane.showInputDialog("Enter the share points on the first day");
int daynum = Integer.parseInt(days);
int share = Integer.parseInt(sharePoints);
int dayStart = 1;
double daynumMidPoint = (daynum/2);
System.out.println(share);
Math.round(daynumMidPoint);
for(int i = dayStart;i<daynumMidPoint;i++) {
System.out.println(share=share+50);
}
for(int l = dayStart;l>=daynumMidPoint;l++){
System.out.println(share=share-25);
}
days=JOptionPane.showInputDialog(“输入库存期间的天数”)//允许用户输入值
sharePoints=JOptionPane.showInputDialog(“在第一天输入共享点”);
int daynum=Integer.parseInt(天);
int share=Integer.parseInt(共享点);
int dayStart=1;
双daynumMidPoint=(daynum/2);
系统输出打印项次(共享);
数学圆(daynumMidPoint);
for(int i=dayStart;i=daynumMidPoint;l++){
System.out.println(share=share-25);
}
如果第一个循环工作,第二个循环将不会启动,因为第一个循环只有在daynumMidPoint
下时才会启动,而第二个循环只有daynumMidPoint
高于或等于daynumMidPoint
时才会启动
如果第一个循环成功,那么第二个循环肯定不会成功。您的数学错误,第二个循环的条件没有满足
int dayStart = 1;
double daynumMidPoint = (daynum/2); // daynum = 10 ---> daynumMidPoint = 5
System.out.println(share);
Math.round(daynumMidPoint);
for(int i = dayStart;i<daynumMidPoint;i++) // i = 1, Condition: i < 5 = true
{
System.out.println(share=share+50);
}
for(int l = dayStart;l>=daynumMidPoint;l++) // l = 1, Condition l >= 6 = false
{
System.out.println(share=share-25);
}
int dayStart=1;
双daynumMidPoint=(daynum/2);//daynum=10--->daynumMidPoint=5
系统输出打印项次(共享);
数学圆(daynumMidPoint);
对于(int i=dayStart;i=daynumMidPoint;l++)//l=1,条件l>=6=false
{
System.out.println(share=share-25);
}
所以要解决这个问题,您需要调整第二个for循环的条件。
或者您需要将l设置为不同的起始值。显示
int dayStart = 1;
设置为1时,另一个循环将不起作用:
for(int l = dayStart;l>=daynumMidPoint;l++){
System.out.println(share=share-25);
由于l
被设置为1并且循环要运行,您需要l
大于或等于daynumMidPoint
,并且由于这被设置为double daynumMidPoint=(daynum/2)代码>那么它不会运行,因为它大于l
另外,如果你想让股价在当天低于中点时上涨,而在当天高于中点时下跌,你可以这样说(或类似的话):
if(请正确格式化您的代码;我这次为您修复了它。如果第二个循环没有运行,这意味着它的条件为false。您需要调试以找出原因。您确定l>=daynumMidPoint
部分吗?当daynumMidPoint大于daynumMidPoint时,第二个循环不符合逻辑,然后您增加了daynumMidPoint。是吗你的意思是小于?你在两个循环bu中使用相同的边界,使用不同的运算符,它不能工作。谢谢。现在我的新问题是:当进入下一个循环时,如何使我的变量dayStart保持值?即它上升到11。我如何使它在该新变量处开始下一个循环?我假设你的意思是要携带val将i
的ue切换到下一个循环(这是有意义的,因为第二个循环实际上会在那时启动)。在第一个循环结束时,您可以执行dayStart=i
。这将把变量dayStart
设置为i
的值,该值是您为初始化循环而创建的变量。通过循环的每次迭代,i
将递增1,因为您在编写for循环时告诉它(如for循环的末尾所示)。
if(i<daynumMidPoint){
SOP(share=share+50);}
else{
SOP(share=share-25);
}
for(int i = dayStart;i<daynumMidPoint;i++) {
}