int a = Integer.parseInt(input.next());
时间: 2024-06-02 09:10:20 浏览: 16
这段代码的作用是将输入的字符串转换为整型数字,并赋值给变量a。其中,input是一个Scanner类的对象,用于从控制台获取输入。next()方法用于获取下一个字符串,而Integer.parseInt()方法则将该字符串转换为整型数字。如果输入的字符串无法转换为整型数字,则会抛出NumberFormatException异常。
相关问题
帮我修改这段代码的错误package experiment6; import java.util.Scanner; public class Test7 { public static void main(String[] args) { Scanner input = new Scanner(System.in); char[] args = new char[3]; for(int i = 0; i < args.length; i++) { System.out.println("请输入第" + (i + 1) + "个整数: "); args[i] = input.nextInt(); } for(int i = 0; i < args.length; i++) { System.out.println(args[i] + " "); } if (args.length != 3) { System.out.println("Usage: java Calculator operand1 operator operand2"); System.exit(1); } int result = 0; switch(args[1].charAt(0)) { case '+': result = Integer.parseInt(args[0]) + Integer.parseInt(args[2]); case '-': result = Integer.parseInt(args[0]) - Integer.parseInt(args[2]); case '.': result = Integer.parseInt(args[0]) * Integer.parseInt(args[2]); case '/': result = Integer.parseInt(args[0]) / Integer.parseInt(args[2]); } System.out.println(args[0] + ' ' + args[1] + ' ' + args[2] + '=' + result); } }
首先,代码中的变量 args 在内部循环部分和传入参数部分重名了,需要将其中一个改名。
另外,在 switch 语句中,每个 case 后面需要添加 break,否则会出现意想不到的结果。
以下是修改后的代码:
package experiment6;
import java.util.Scanner;
public class Test7 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char[] arg = new char[3];
for(int i = 0; i < arg.length; i++) { //修改重名变量
System.out.println("请输入第" + (i+1) + "个整数: ");
arg[i] = input.next().charAt(0);
}
for(int i = 0; i < arg.length; i++) {
System.out.print(arg[i] + " ");
}
if (arg.length != 3) {
System.out.println("Usage: java Calculator operand1 operator operand2");
System.exit(1);
}
int result = 0;
switch(arg[1]) { //修改switch部分
case '+':
result = Integer.parseInt(arg[0]+"") + Integer.parseInt(arg[2]+"");
break;
case '-':
result = Integer.parseInt(arg[0]+"") - Integer.parseInt(arg[2]+"");
break;
case '*':
result = Integer.parseInt(arg[0]+"") * Integer.parseInt(arg[2]+"");
break;
case '/':
result = Integer.parseInt(arg[0]+"") / Integer.parseInt(arg[2]+"");
break;
default:
System.out.println("无效的运算符");
break;
}
System.out.println(arg[0] + " " + arg[1] + " " + arg[2] + " = " + result);
}
}
修改代码public class CLI { private static Scanner input = new Scanner(System.in); public static void main(String[] args){ Library library = new Library("UIC Library"); String names; int number ; int borrow; int totalBorrowedBooks = 50; // initial value int action = 0; Scanner scanner = new Scanner(System.in); while (action != 6) { System.out.print("Type an action (total:1 add:2 get:3 more:4 less:5 quit:6): "); String input = scanner.nextLine(); try { action = Integer.parseInt(input); } catch (NumberFormatException e) { System.out.println("You must type an integer!"); continue; } Object bookCounts; switch (action) { case 4: System.out.println("Enter the name of the user: "); names = scanner.next(); System.out.println("Enter the number of books: "); number = scanner.nextInt(); if(!names.equals("Anna") && !names.equals("Bob")) { System.out.println("User "+ names +" unknown."); break;//add break to end this operation. } System.out.println("Type an action (total:1 add:2 get:3 more:4 less:5 quit:6):"); borrow = scanner.nextInt(); System.out.print("Enter the name of the user:"); names = scanner.next(); if (names.equals("Anna")) { number -= borrow; if (number < -5) { System.out.println("You can't borrow more books. Return some books first."); } else { System.out.println(names+" borrows " + (-5 + number -1) + "book(s)."); } }else if(names.equals("Bob")) { number -= borrow; if (number > 10) { System.out.println("You can't borrow more books. You have reached the maximum limit."); } else if(number>0||number<10){ System.out.println(names+" borrows " + (10 - number +1) + " book(s)."); } else if(number<0){ System.out.println("Positive integers only!"); System.out.println("Enter the number of books:"); number = scanner.nextInt(); System.out.println(names+" borrows " + (10 - number +1) + " book(s)."); // Directly output the result after modification. } }else { System.out.println("User "+ names +" unknown."); } break;
public class CLI {
private static Scanner input = new Scanner(System.in);
public static void main(String[] args){
Library library = new Library("UIC Library");
String names;
int number;
int borrow;
int totalBorrowedBooks = 50; // initial value
int action = 0;
Scanner scanner = new Scanner(System.in);
while (action != 6) {
System.out.print("Type an action (total:1 add:2 get:3 more:4 less:5 quit:6): ");
String input = scanner.nextLine();
try {
action = Integer.parseInt(input);
} catch (NumberFormatException e) {
System.out.println("You must type an integer!");
continue;
}
switch (action) {
case 4:
System.out.println("Enter the name of the user: ");
names = scanner.next();
System.out.println("Enter the number of books: ");
number = scanner.nextInt();
if(!names.equals("Anna") && !names.equals("Bob")) {
System.out.println("User "+ names +" unknown.");
break;
}
System.out.println("Type an action (total:1 add:2 get:3 more:4 less:5 quit:6):");
borrow = scanner.nextInt();
System.out.print("Enter the name of the user:");
names = scanner.next();
if (names.equals("Anna")) {
number -= borrow;
if (number < -5) {
System.out.println("You can't borrow more books. Return some books first.");
break;
} else {
System.out.println(names+" borrows " + (-5 + number -1) + "book(s).");
break;
}
} else if(names.equals("Bob")) {
number -= borrow;
if (number > 10) {
System.out.println("You can't borrow more books. You have reached the maximum limit.");
break;
} else if(number>0||number<10){
System.out.println(names+" borrows " + (10 - number +1) + " book(s).");
break;
} else if(number<0){
System.out.println("Positive integers only!");
System.out.println("Enter the number of books:");
number = scanner.nextInt();
System.out.println(names+" borrows " + (10 - number +1) + " book(s).");
break;
}
} else {
System.out.println("User "+ names +" unknown.");
break;
}
default:
break;
}
}
}
}