所以我对Java很新,在课堂上,我不得不制作Rock Paper Scissors。它看起来并不太难,所以我想让它使用尽可能少的IF语句。我有更好的方法吗?
仅供参考:int _tmain(int argc, TCHAR *argv[]) {
DCB dcb;
HANDLE hCom;
BOOL fSuccess;
TCHAR *pcCommPort = TEXT("\\\\.\\HCD0"); // USB name
// Open a handle to the specified com port.
hCom = CreateFile(pcCommPort,
GENERIC_READ | GENERIC_WRITE,
0, // must be opened with exclusive-access
NULL, // default security attributes
OPEN_EXISTING, // must use OPEN_EXISTING
0, // not overlapped I/O
NULL); // hTemplate must be NULL for comm devices
if (hCom == INVALID_HANDLE_VALUE) {
// Handle the error.
printf("CreateFile failed with error %d.\n", GetLastError());
Sleep(15000);
return (1);
}
// Initialize the DCB structure.
SecureZeroMemory(&dcb, sizeof(DCB));
dcb.DCBlength = sizeof(DCB);
// Build on the current configuration by first retrieving all current
// settings.
fSuccess = GetCommState(hCom, &dcb);
if (!fSuccess) {
// Handle the error.
printf("GetCommState failed with error %s.\n", GetLastError());
printf("Cannot get first time");
Sleep(12000);
return (2);
}
.......
我用Scanner
我在电话上输入此内容,对不起任何格式错误。
LOGIC(在记事本中输入)
摇滚是1张纸是2把剪刀是3。 用户输入 - CPU = Sum&结果
Rock - Scissors = -2你赢了 摇滚 - 纸= -1你输了
纸 - 摇滚= 1你赢了 纸 - 剪刀= -1你输了
剪刀 - 纸= 1你赢了 剪刀 - 摇滚= 2你输了
= 0始终打结
CODE(在eclipse中完成,但是从移动设备输入,也不包括使用扫描仪和设置变量等内容)
输入=输入 - CPU
Syso = System.out.println()
答案 0 :(得分:0)
如果使用&&和&和||
if ( i = 0 ) s.out.println("its a tie");
else if ( i == -1 || i == 2 ) s.out.println("you lost");
else if ( i == 1 || i == -2 ) s.out.println("you won");
如果您没有其他可能的结果,您可以将最后一次检查留给
else s.out.println("you won");
答案 1 :(得分:-1)
if (input == 0)
{
Syso "You Tied";
}
else if (input < 0){
Syso "You lose";
}
else {
Syso "you win";
}
你应该把纸张保持为1,将sccissors保持为2,然后摇滚3.那样 - 案件将丢失案件,+ ve案件将成为胜诉案件。此代码具有较少数量的比较。