嘿,伙计们,我正试图为一个java类做一个HW问题,我在理解逻辑上遇到了一些困难。这就是他们问我的问题:
高尔夫球得分记录球在洞内击球的次数。预计杆数因洞而异,称为标准杆(即3、4或5杆)。每个分数都有一个可爱的名字,根据实际采取的笔画相比,标准杆。如果杆数低于标准杆两杆,则返回“鹰”。如果杆数比标准杆低一杆,还回“小鸟”。返回“标准杆”,如果标准杆与划线完全匹配。如果杆数超过标准杆数,则返回"Bogey“。返回“错误”,如果par不是3,4或5。
这是我的密码:
public class Main {
public String golfScore(int par, int strokes){
if(strokes <= par - 2){
return "Eagle";
}
else if(strokes <= par -1){
return "Birdie";
}
else if(strokes == par){
return "Par";
}
else if(strokes > par + 1){
return "Bogey";
}
else{
return "Error";
}
}
// this method not used but needed for testing
public static void main(String[] args) {
}
}
当我运行测试结果时,除了上次的测试外,所有的结果都是正确的。
但是这个逻辑对我来说没有意义,因为它应该使我的if语句无效。因为1>2+1是假的,所以应该输出错误。为什么我的程序输出妖怪?
发布于 2020-10-05 22:42:05
解决了!多亏了ChrisForrence!
if ((par != 3) && (par != 4) && (par != 5)){
return "Error";
}
else if(strokes <= par - 2){
return "Eagle";
}
else if(strokes <= par -1){
return "Birdie";
}
else if(strokes == par){
return "Par";
}
else{
return "Bogey";
}
}
发布于 2022-10-04 22:01:33
如果有人在寻找这个问题的解决方案,但却用C++编写的话,就在这里。
#include <iostream>
using namespace std;
int main() {
int par;
int strokes;
cin >> par >> strokes;
if ((par != 3) && (par != 4) && (par != 5)){
cout << "Error" << endl;
}
else if (strokes == par - 2){
cout << "Eagle" << endl;
}
else if (strokes == par - 1){
cout << "Birdie" << endl;
}
else if (strokes == par){
cout << "Par" << endl;
}
else if (strokes == par + 1){
cout << "Bogey" << endl;
}
else{
cout << "None" << endl;
}
return 0;
}
https://stackoverflow.com/questions/64216960
复制相似问题