Вот исходный код VBA:VBA для Java преобразовать петли
For i = 0 To M
St(i) = i * dS '
C(N, i) = Max(0, z * (St(i) - X))
Next
For j = N - 1 To 0 Step -1
For i = 1 To M - 1
pu = 0.5 * (v^2 * i^2 + b * i) * dt
pm = 1 - v^2 * i^2 * dt
pd = 0.5 * (v^2 * i^2 - b * i) * dt
C(j, i) = Df * (pu * C(j + 1, i + 1) + pm * C(j + 1, i) + pd * C(j + 1, i - 1))
If AmeEurFlag = "a" Then
C(j, i) = Max(z * (St(i) - X), C(j, i))
End If
Next
If z = 1 Then
C(j, 0) = 0
C(j, M) = (St(i) - X)
Else
C(j, 0) = X
C(j, M) = 0
End If
Next
и я хочу, чтобы преобразовать в Java здесь мой код:
for (int i = 0; i < M; i++)
{
St[i] = i * dS;
C[(int) N][i] = Math.max(0, z * (St[i] - X));
}
for (int j = (int) (N - 1); j < 0; j--)
{
for (int i = 1; i < M-1; i++)
{
pu = 0.5 * (Math.pow(v, 2) * Math.pow(i, 2)+ b * i) * dt;
pm = 1 - Math.pow(v, 2) * Math.pow(i, 2)* dt;
pd = 0.5 * (Math.pow(v, 2)* (Math.pow(i, 2) - b * i) * dt);
C[j] [i] = Df * (pu * C[j + 1] [i + 1] + pm * C[j + 1] [i] + pd * C[j + 1] [i - 1]);
if (AmeEurFlag == "a")
{
C[j] [i] = Math.max(z * (St[i] - X), C[j][i]);
}
}
if (z == 1)
{
C[j][0] = 0;
C[j][M] = (St[i] - X);
}
else
{
C[j][0] = X;
C[j][M] = 0;
}
}
У меня есть ошибка в этой строке C [j] [M] = (St [i] - X); Потому что нет переменной «i». Я вышел из первого цикла. Итак, eclipse говорит, что вы должны создать переменную. В vba я могу создать переменное начало кода, например: «Dim i As Integer», но в java это возможно? Как я могу решить эту проблему? Заранее благодарим
что 'i' ссылается на ?? это петля? –
Этот вопрос не соответствует теме, потому что речь идет о базовом синтаксисе Java, который рассматривается в любом учебнике. – chrylis
На самом деле я не уверен, но в коде VBA он используется только в циклах и создает начало кода. «Может быть, Dim i As Integer» дает значение по умолчанию, например 0? –