输出到控制台
基本语法:
System.out.println(msg); // 输出一个字符串 , 带换行System.out.print(msg); // 输出一个字符串 , 不带换行System.out.printf(format, msg); //格式化输出
- println 输出的时候自带换行,print 输出的时候不换行
- printf 的用法基本和C语言一致
代码示例:
System.out.println("100");
System.out.print("100");
System.out.printf("%d",100);
格式化字符列表
从键盘输入
我们在Java中进行输入操作需要用到一个 Scanner 类,我们使用这个类需要进行导包操作。就好比在C语言中我们使用一个函数需要加上头文件。
代码示例:
import java.util.Scanner; //导入Scanner包
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
这个代码的作用就相当于我们在C语言中的:
int n = 0;
scanf("%d\n",&n);
作用是从键盘输入一个整数到变量 n 中。
当我们想要从键盘输入:字符、字符串、浮点型、等等,都有相应的写法。下面来举例:
import java.util.Scanner;
Scanner num = new Scanner(System.in);
System.out.println("请输入你的姓名:>");
String name = num.next();
System.out.println(name);
System.out.println("请输入你的年龄:>");
int a = num.nextInt();
System.out.println(a);
输出结果为:
在我们的 Scanner 类中还有一个方法的作用是:进行重复读取,直到在键盘上按住 ctrl+D 或者 ctrl + Z 来停止读取。
举例:
Scanner tmp = new Scanner(System.in);
int num = 0;
while( tmp.hasNextInt() ){
int a = tmp.nextInt();
num += a;
}
System.out.println(num);
tmp.close();
这个 hasNextInt() 方法就是在键盘重复输入整形。当然也有重复输入字符、浮点型的方法,这个酌情使用。
上述的代码输出结果为:
我们在键盘重复输入了 1,2,3,4,5 然后按住 ctrl + D 结束输入,最后程序把它们都加起来算出来结果。
学会了上述的输入输出操作,我们再来尝试运用一下。
猜数字游戏
游戏规则:
系统自动生成一个随机整数 (1-100), 然后由用户输入一个猜测的数字 . 如果输入的数字比该随机数小 , 提示 " 低 了", 如果输入的数字比该随机数大 , 提示 " 高了 " , 如果输入的数字和随机数相等 , 则提示 " 猜对了 " .
在制作这个游戏的时候我们需要一个操作来随机生成一个整数。因此我们需要用到一个 Random类,在使用这个类的时候我们就要进行导包操作,导入一个 Random 包。
代码示例:
import java.util.Random;
import java.util.Scanner;
public class TestDemo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int ranNum = random.nextInt(100); //随机产生0-100的数字
while(true){
System.out.println("请输入要猜的数字:>");
int num = scanner.nextInt();
if(num < ranNum){
System.out.println("猜小了!");
}
else if(num > ranNum){
System.out.println("猜大了!");
}
else{
System.out.println("猜对了!答案是:"+ranNum);
}
}
}
}
这里我们用到了 Random 类中的一个 nextInt() 方法来随机生成一个100以内的整数。
判定一个数字是否是素数
首先我们要知道什么是素数 ? 素数就是指:该数只能被 1 和本身整除。接下来我们就可以构思代码了。
示例:
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个数来判断是否是素数");
int num = scanner.nextInt();
int i = 2;
for (; i <= Math.sqrt(num); i++) {
if(num % i == 0){
System.out.println("不是素数");
break;
}
}
if(i > Math.sqrt(num)){
System.out.println("是素数");
}
这里我们使用了 Math 类中的 sqrt 方法,作用是:求一个数的平方根。
编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序。
代码示例:
Scanner scanner = new Scanner(System.in);
int count = 3;
while(count != 0){
System.out.println("请输入密码:>");
String pass = scanner.nextLine();
if(pass.equals("1234567")){
System.out.println("登录成功!");
break;
}else{
count--;
System.out.println("登录失败! 你还剩下" + count +"次机会");
}
}
这里我们使用了一个 equals() 方法,作用是判断两个字符串是否相等,相当于C语言中的 strcmp 函数。
输出一个整数的每一位
代码示例:
System.out.println("请输入一个数字:>");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int tmp = n;
int count = 0;
while(tmp != 0){
count++;
tmp /= 10;
}
tmp = n;
for (int i = 0; i < count; i++) {
int a = tmp % 10;
System.out.print(a + " ");
tmp /= 10;
}
输出结果:
打印出一个n行的X型
代码示例:
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要打印的行数:>");
while(scanner.hasNextInt()){
int n = scanner.nextInt();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if(i==j || i+j == n-1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
结果截图: