簡體   English   中英

使用兩個循環,但只有一個循環運行。 計算機科學導論(Java)

[英]Using two loops but only one loop runs through. Intro to computer science.(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 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);
}

好吧,如果第一個循環有效,則第二個循環不會,因為第一個循環只會在dayStart低於daynumMidPoint啟動,而第二個只會在dayStart大於或等於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);
}

因此,要解決此問題,您需要調整第二個 for 循環的條件。 或者您需要將 l 設置為不同的起始值。

表明這

int dayStart = 1;

設置為一,另一個循環將不起作用:

for(int l = dayStart;l>=daynumMidPoint;l++){
System.out.println(share=share-25);

由於l設置為 1 並且要運行循環,因此您需要ldaynumMidPoint或相等,並且由於將其設置為double daynumMidPoint = (daynum/2); 那么它不會運行,因為它大於l

還看到如果當天低於中點,您似乎希望股票增加,如果當天高於中點,則減少,您可以輸入以下內容(或類似內容):

if(i<daynumMidPoint){
SOP(share=share+50);} 
else{
SOP(share=share-25);
}

在這個 for 循環中:

for(int i = dayStart;i<daynumMidPoint;i++) {

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM