Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/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)_Java - Fatal编程技术网

使用两个循环,但只有一个循环通过。计算机科学导论(Java)

使用两个循环,但只有一个循环通过。计算机科学导论(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

所以我试图创建一个简单的股票计划。我的第一个循环工作,但它不会传递到我的第二个循环,我不知道为什么。我尝试过中断和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 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++) {

}