我的IF-ELSE语句总是返回Google Appscript中的第一个值.试着到处调试



我正试图通过查看我的学生成绩来自动创建谷歌文档。我有一个if语句,它检查分数、分配值和打印相同值的函数。除了if语句总是返回第一个值之外,一切似乎都正常。我该如何解决这个问题?

这是我的代码:

function createPdf() {
const ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Summary');
const lastRow = ws.getLastRow();
const score = ws.getRange(lastRow, 3).getValue();
const templateDoc = DriveApp.getFileById('test1');
const newTempFile = templateDoc.makeCopy(tempFolder);
const openDoc = DocumentApp.openById(newTempFile.getId());
const body = openDoc.getBody();
const paragraph = body.getParagraphs();
body.replaceText('{percentage}', percentage);
body.replaceText('{score}', score);
if (50.0 < score < 120.0) {
paragraph[13].appendText('POOR') && paragraph[17].appendText('xyz.');
} else if (score >= 120.0) {
paragraph[13].appendText('GOOD') && paragraph[17].appendText('abc.');
} else {
paragraph[13].appendText('VERY POOR') && paragraph[17].appendText('ouy.');
}
openDoc.saveAndClose();
}

您的方法始终是true,因为第一部分是

50.0 < score

是CCD_ 2或CCD_。用于下一次与布尔值的比较

boolean < 120.0

bolean值被转换为数字CCD_ 4或CCD_。

为了克服这个问题,您需要使用逻辑AND&&进行两次比较。

50.0 < score && score < 120.0

如果我们使用3 > 2 > 1作为示例。

从左到右的CCD_ 9是CCD_。true = 1&false = 0

2 > 1变为1 > 1,而CCD_14通常是false

因此,如果50 < score为真,则50 < score = 1。因此,该评估等同于CCD_ 18,其总是CCD_ 19。

相关内容

最新更新