[code=Java] import java.util.Scanner;public class Test {
public static void main(String args[]) { Scanner scan=new Scanner(System.in); int num=Integer.parseInt(scan.nextLine()); System.out.print(num*num); } }code]
这样算还可以吗import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;class InputData { static private String s = ""; static public void input() { BufferedReader bu = new BufferedReader(new InputStreamReader(System.in)); try { s = bu.readLine(); } catch (IOException e) { } } static public int getInt() { input(); return Integer.parseInt(s); } }class Result { void print(int d) { System.out.println(d * d); System.out.print(d * d * d); } }public class PrintResult { public static void main(String args[]) { Result result = new Result(); System.out.println("input a number"); int a = InputData.getInt(); result.print(a); } }
虽然是个小程序,功能很简单,但是要想其健壮运行的话,所谓 all input is evil 因此需要考虑的问题有很多,我暂时想到的就这些:1:输入的不是一个整数时的处理 2:输入是一个超大数字,且会溢出时的处理 3:输入的数字在范围之内,但平方之后就会溢出时的处理 4:这程序是执行完一次后就退出,还是一直可以执行下去。如果是一直接行下去的话,用户如何退出程序你在 5 楼的程序只是实现了功能,充其量只能得 50 分,再加上这些判断之后就可以达到很高的分数了。加油,希望看到第二个版本,嘿嘿~~
int a=Integer.parseInt((new Scanner(System.in)).nextLine()); System.out.print((int)Math.pow(a, 2));
如果你看到这里请加群53596919 java500勇士 谢谢
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StreamTokenizer;public class Test { public static void main(String[] args) throws IOException { StreamTokenizer in = new StreamTokenizer(new BufferedReader( new InputStreamReader(System.in))); int num; while (in.nextToken() != StreamTokenizer.TT_EOF) { num = (int) in.nval; System.out.println(num * num); } } }
下面这段代码基本上能满足 11 楼的要求了,并且在 Ctrl + C 强行终止时也能输出 bye bye!! 信息。有兴趣的话可以看一下:import java.io.BufferedReader; import java.io.InputStreamReader;public class Test { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); SquareCalculator calculator = new SquareCalculator(reader); calculator.calc(); } }class SquareCalculator extends Thread { private boolean running = true; private BufferedReader reader;
int num = in.nextInt();
num*=num;
System.out.println(num);
import java.util.Scanner;public class Test {
public static void main(String args[]) {
Scanner scan=new Scanner(System.in);
int num=Integer.parseInt(scan.nextLine());
System.out.print(num*num);
}
}code]
这样算还可以吗import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;class InputData {
static private String s = ""; static public void input() {
BufferedReader bu = new BufferedReader(new InputStreamReader(System.in));
try {
s = bu.readLine();
} catch (IOException e) {
}
} static public int getInt() {
input();
return Integer.parseInt(s);
}
}class Result {
void print(int d) {
System.out.println(d * d);
System.out.print(d * d * d);
}
}public class PrintResult {
public static void main(String args[]) {
Result result = new Result();
System.out.println("input a number");
int a = InputData.getInt();
result.print(a);
}
}
2:输入是一个超大数字,且会溢出时的处理
3:输入的数字在范围之内,但平方之后就会溢出时的处理
4:这程序是执行完一次后就退出,还是一直可以执行下去。如果是一直接行下去的话,用户如何退出程序你在 5 楼的程序只是实现了功能,充其量只能得 50 分,再加上这些判断之后就可以达到很高的分数了。加油,希望看到第二个版本,嘿嘿~~
int a=Integer.parseInt((new Scanner(System.in)).nextLine());
System.out.print((int)Math.pow(a, 2));
java500勇士 谢谢
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;public class Test {
public static void main(String[] args) throws IOException {
StreamTokenizer in = new StreamTokenizer(new BufferedReader(
new InputStreamReader(System.in)));
int num;
while (in.nextToken() != StreamTokenizer.TT_EOF) {
num = (int) in.nval;
System.out.println(num * num);
}
}
}
import java.io.InputStreamReader;public class Test { public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
SquareCalculator calculator = new SquareCalculator(reader);
calculator.calc();
}
}class SquareCalculator extends Thread { private boolean running = true;
private BufferedReader reader;
public SquareCalculator(BufferedReader reader) {
this.reader = reader;
// 用于人为 Ctrl + C 中断时能输出友好的信息
Runtime.getRuntime().addShutdownHook(new ShutdownHookListener(this));
} public void calc() {
try {
while (running) {
System.out.print("请输入一个数字(按 q 退出):");
Input input = new Input(reader.readLine());
if(input.getInput() == null || "q".equals(input.getInput())) {
shutdown();
continue;
}
if(!input.isInputCorrect()) {
System.out.println(" ** 输入错误,请重新输入 **\n");
continue;
}
outputSquare(input);
}
} catch (Exception e) {
e.printStackTrace();
}
} private void outputSquare(Input input) {
int num = input.getNum();
System.out.println(num + " 的平方为:" + ((long)num * num));
System.out.println();
}
public void shutdown() {
running = false;
}
public boolean isRunning() {
return running;
}
private static class ShutdownHookListener extends Thread {
private SquareCalculator calculator;
private ShutdownHookListener(SquareCalculator calculator) {
this.calculator = calculator;
}
public void run() {
calculator.shutdown();
System.out.println("\n\nbye bye!!");
}
}
}class Input {
private String input;
private boolean inputCorrect;
private int num;
public Input(String input) {
this.input = input;
parse();
}
public int getNum() {
return num;
}
public String getInput() {
return input;
}
public boolean isInputCorrect() {
return inputCorrect;
}
private void parse() {
try {
this.num = Integer.parseInt(this.input);
this.inputCorrect = true;
} catch (Exception e) {
this.inputCorrect = false;
}
}
}