所以我刚开始上课,开始学习java。我遇到了一个任务,你需要在-6和38之间取几率并将它们放入一个数组中。我完全迷失了,这可能是一个愚蠢的问题但我在开始的程序中哪里出错?
Odd number of numbers between -5 and 38 is 23
-5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Process finished with exit code 0
我得到的输出是:
if (lowNumber % 2 == 0) {
lowNumber += 1;
odds[i] = lowNumber;
我猜是因为
var workbook = new Excel.Workbook();
workbook.xlsx.readFile('utils/valid.xlsx')
.then(function() {
var worksheet = workbook.getWorksheet(1);
worksheet.eachRow(function(row, rowNumber) {
//count++;
console.log(rowNumber);
var row = worksheet.getRow(rowNumber);
var dataPath1 = row.getCell("A").value;
var dataPath2 = row.getCell("B").value;
var dataPath = '/PlaceFulfillmentOrderRequest'+dataPath1+dataPath2;
console.log(dataPath);
var dataValue = row.getCell("D").value
console.log(dataValue);
validate (dataPath,dataValue);
});
})
function validate(dataPath, dataValue){
fs.readFile('utils/PlaceFulfillmentOrder.xml', 'utf8', function (err,data) {
if (err) {
console.log("ERROR ERROR ERROR ERROR ");
return console.log(err);
}
var doc = new dom().parseFromString(data);
var subId = xpath.select1(dataPath, doc);
var value = subId.lastChild.data;
console.log("actual value: " + value);
assert.equal(value, dataValue, 'Not matched')
console.log("passed")
});
}
答案 0 :(得分:2)
你的循环应该从lowNumber开始并以highNumber结束。你应该检查它们中的赔率。
循环应该像:
int j = 0;
for(int i = lowNumber; i < highNumber; i++){
if(i % 2 == 1)
odds[j++] = i;
}
您的代码存在很多问题。
您的循环开始和结束点是错误的。
您正在将i
递增2.(为什么?)
在初始化时检查odds[]
数组的索引。
答案 1 :(得分:0)
您的代码无效,因为您只在lowNumber%2==0
时将值添加到数组中。这只是一次,因为在那之后,你增加2并且永远不输入条件。试试这个:
for(int i=0; i<arraySize; i++) {
if (lowNumber % 2 == 0) {
lowNumber += 1;
}
odds[i] = lowNumber;
lowNumber += 2;
}
刚开始时,您不会被期望使用或了解ArrayList
,但他们会很容易解决这个问题。
import java.util.*;
public class oddNumbersClass {
public static void main(String args[]) {
int lowNumber = -6;
int highNumber = 38;
ArrayList<Integer> odds = new ArrayList<Integer>();
for (int i = lowNumber; i <= highNumber; i ++) {
if (lowNumber % 2 != 0) {
odds.add(i);
}
}
System.out.println("Odd number of numbers between " + lowNumber + " and " + highNumber + " is " + odds.size());
for (Integer i : odds) {
System.out.print(i + " ");
}
}
}