[英]Using user-inputted characters in If/Switch statements
我正在學習我的第一個Java課程,並且很難完成這項任務。
作業本身很簡單。 我所要做的就是提示用戶輸入一個整數,一個字符,然后輸入另一個整數。
如果輸入的字符是+,則應將兩個整數相加。 如果輸入的字符是 - ,則應減去兩個整數。 等等...
問題是我不知道如何接受用戶的字符,然后在我的If / Switch語句中使用它。
以下是我的提示:
// Prompt the user to enter an integer
System.out.print("Please enter an integer number:");
int int1 = input.nextInt();
// Prompt the user to enter a character
// Since I could not use characters, I am using integers to represent them.
System.out.print("Enter 0 for +, 1 for -, 2 for /, 3 for %, and 4 for *");
int char1 = input.nextInt();
// Prompt the user to enter another integer
System.out.print("Please enter another integer number:");
int int2 = input.nextInt();
這是我的If / Switch語句:(我知道它們是多余的,但它是作業的一部分)
if (char1 == 0) {
int ans = int1 + int2;
System.out.println(int1 + " + " + int2 + " = " + ans);
} else if (char1 == 1) {
int ans = int1 - int2;
System.out.println(int1 + " - " + int2 + " = " + ans);
} else if (char1 == 2) {
int ans = int1 / int2;
System.out.println(int1 + " / " + int2 + " = " + ans);
} else if (char1 == 3) {
int ans = int1 % int2;
System.out.println(int1 + " % " + int2 + " = " + ans);
} else if (char1 == 4) {
int ans = int1 * int2;
System.out.println(int1 + " * " + int2 + " = " + ans);
} else
System.out.println("Invalid operator");
int result = 0;
switch (char1) {
case 0: result = int1 + int2;
System.out.println(int1 + " + " + int2 + " = " + result); break;
case 1: result = int1 - int2;
System.out.println(int1 + " - " + int2 + " = " + result); break;
case 2: result = int1 / int2;
System.out.println(int1 + " / " + int2 + " = " + result); break;
case 3: result = int1 % int2;
System.out.println(int1 + " % " + int2 + " = " + result); break;
case 4: result = int1 * int2;
System.out.println(int1 + " * " + int2 + " = " + result); break;
default: System.out.println("Invalid operator");
}
其他一切都很好。 我只是想嘗試將0改為+,1改為 - ,改為使用+, - ,/,%和*。
您可以將用戶的操作符作為String或Char
像這樣 :
Scanner input = new Scanner(System.in);
// Prompt the user to enter an integer
System.out.print("Please enter an integer number:");
int int1 = input.nextInt();
// Prompt the user to enter a character
// Since I could not use characters, I am using integers to represent them.
System.out.print("Enter +, -, /, %, *");
char char1 = input.next().charAt(0);
// Prompt the user to enter another integer
System.out.print("Please enter another integer number:");
int int2 = input.nextInt();
if (char1=='+') {
int ans = int1 + int2;
System.out.println(int1 + " + " + int2 + " = " + ans);
} else if (char1=='-') {
int ans = int1 - int2;
System.out.println(int1 + " - " + int2 + " = " + ans);
} else if (char1=='/') {
int ans = int1 / int2;
System.out.println(int1 + " / " + int2 + " = " + ans);
} else if (char1=='%') {
int ans = int1 % int2;
System.out.println(int1 + " % " + int2 + " = " + ans);
} else if (char1=='*') {
int ans = int1 * int2;
System.out.println(int1 + " * " + int2 + " = " + ans);
} else {
System.out.println("Invalid operator");
}
int result = 0;
switch (char1) {
case '+':
result = int1 + int2;
System.out.println(int1 + " + " + int2 + " = " + result);
break;
case '-':
result = int1 - int2;
System.out.println(int1 + " - " + int2 + " = " + result);
break;
case '/':
result = int1 / int2;
System.out.println(int1 + " / " + int2 + " = " + result);
break;
case '%':
result = int1 % int2;
System.out.println(int1 + " % " + int2 + " = " + result);
break;
case '*':
result = int1 * int2;
System.out.println(int1 + " * " + int2 + " = " + result);
break;
default:
System.out.println("Invalid operator");
}
你可以這樣做:
System.out.print("Enter +, -, /, or *");
char char1 = input.nextLine().charAt(0);
nextLine
將獲取用戶輸入的全部內容,而charAt
將獲取指定索引處的字符。
因此, charAt(0)
獲得第一個字符。 這是一個直觀的解釋:頂部是字符串,底部是字符數:
|t|h|i|s| |i|s| |a| |t|e|s|t|
-----------------------------
|0|1|2|3|4|5|6|7|8|9|1|1|1|1|
| | | | | | | | | | |0|1|2|3|
您可以通過以下方式使用來自用戶輸入的char
:
char
只是一個無符號整數值0..65535所以你可以為值43
編寫例如+
[這是'+'的unicode]
switch (char1) {
case '+': result = int1 + int2;
System.out.println(int1 + " + " + int2 + " = " + result); break;
case '-': result = int1 - int2;
System.out.println(int1 + " - " + int2 + " = " + result); break;
case '/': result = int1 / int2;
System.out.println(int1 + " / " + int2 + " = " + result); break;
case '%': result = int1 % int2;
System.out.println(int1 + " % " + int2 + " = " + result); break;
case '*': result = int1 * int2;
System.out.println(int1 + " * " + int2 + " = " + result); break;
default: System.out.println("Invalid operator");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.