海岛奇兵魅族客户端
367.43 MB · 2025-11-13
想象计算机的内存是一家旅馆,旅馆里有很多房间,每个房间都有一个编号(类似于变量的地址),并且每个房间只能住特定类型的客人(类似于变量的数据类型) 变量名 = 房间号 (101,202,201,302…………) 变量类型 = 房间的类型(单人间,双人间,情侣套房,豪华总统套房……) 变量的值 = 住客(住客必须符合房间的类型,比如说五个人不能睡一个人的房间,比如说情侣睡普通的双人间那可以,但是有情侣套房肯定更喜欢一点等等)
public class PRICE {
public static void main(String[] args) {
// TODO Auto-generated method stub
int price = 15;
int num = 20;
int allprice = price * num;
System.out.println("total price is " + allprice);
}
}
在这里不需要理解这个代码的含义,price是一个变量,可以理解成是一个房间号,并且房间的类型(是int)然后住客是15,同样num也是一个变量,类型也是int,住客(数值)是20,allprice也是一个变量,不过它的数值需要使用price乘num得到的。
public class Price {
public static void main(String[] args) {
// TODO Auto-generated method stub
double price = 10.0;
int number = 30;
double total = price * number;
System.out.println("最后的总价是 "+ total );
}
}
这个地方有 三个变量,price的变量类型是double 数值是10.0,然后呢 这个number的变量 类型是int 数值是 30,还有一个变量total 类型是 double 需要使用price *number进行的。
那么还有一句话System.out.println()这个System(系统) out(输出) print(打印) 其实本质上就是系统输出打印的意思,简单来说就是输出的含义。而这个ln是换行的含义 打印下一个在下一行 所以在java中我们通常使用 System.out.println()来输出。
System.out.printf("zhouchang is %.2f, ", zhouchang);
这句话与刚刚的不一样,在最后使用了 printf(print:打印;f:format:格式)代表最后打印出来要按照一定的格式,而格式可以我们来定,那么zhouchang is %.2f, 这句话就是我的格式 我输出是按照这个方式输出的,那么 %.2f是什么意思呢? 指的是这个地方的数据输出的话必须是一个2位小数。 后面跟着的zhouchang就是传入到%.2f 然后使用两位小数输出。
public class Price {
public static void main(String[] args) {
// TODO Auto-generated method stub
final double PI = 3.14159;
int r = 10;
double zhouzhang = 2*PI*r;
double square = PI *r*r;
System.out.printf("zhouchang is %.2f, ", zhouzhang);
System.out.println(square);
}
}
输出就是
因为第一句话打印 没有使用 println 所以第二个并没有换行 所以成为这个样子。
那么 我们一个一个来解释,那么第一变量名称有什么特殊的要求。
那么在1中经常说的变量类型(之前说的房间类型) int,double这些,在这里会写到。
int:整数 double:浮点数(小数) String:字符串 char:一个字母(比如说'A') final:常量(后面的变量名称所有字母全部大写)然后不能更改,如果更改就会报错(不是一个变量类型,后面需要跟着其他的一个)
public class practice2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int r = 10;
final double PI = 3.14;//后面的变量名称大写并且不能修改
double zhouchang = 2* PI * r;
double mianji = PI * r*r;
System.out.println(zhouchang);
System.out.println(mianji);
}
}
int 是整数所以我后面的数值只能入住整数的人;然后final不是一个变量类型。需要后面加入一个double这一个数据类型。后面因为PI都是double类型的,所以zhouchang这个数据类型(两个整数乘一个小数)那么肯定是一个小数,所以要使用double这个数据类型。
public class Price {
public static void main(String[] args) {
// TODO Auto-generated method stub
final double PI = 3.14159;
int r = 10;
double zhouzhang = 2*PI*r;
double square = PI *r*r;
System.out.println(zhouzhang);
System.out.println(square);
}
}
这个就是上面这个代码的输出。
加:+ 减:- 乘:* 除:/,这个除法呢除完之后取值,不管后面有什么 mod:%,这个是取余数的运算
public class c3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num =2;
System.out.println(num++);//这个答案是2 因为先取出后运算 在后面++
int num = 5;
int result1 = num++; // 后置自增:先赋值,后 num 变成 6
int result2 = ++num; // 前置自增:num 先变成 7,然后赋值
System.out.println("result1 = " + result1); // 输出 5
System.out.println("result2 = " + result2); // 输出 7
System.out.println("num = " + num); // 输出 7
int num1 =2;
System.out.println(++num1);//这个答案是3,因为先运算后取出。有一个顺序上的问题
int num2 =2;
System.out.println(--num2);//这个答案是1,因为先运算后取出,以此类推,num--(如果num是2的话)那么答案应该是1
}
}
num++ 指的是后置自增(指的是 result1先成为5(4+1)然后num成为6)所以打印出来是5
++num指的是前置自增(指的是num先变成7(6+1)然后result2成为7)所以打印出来是7 如果是num2=2;然后最后打印出来使用--num2
--num2 那么前置自减(先把num2 变成1(2-1)然后输出1) 减与加都是一样的。
Scanner就是接受用户输入,在一般的系统中,我们通常使用的app中,我们如果想要登录这个app的话,需要的就是输入你的用户名与密码。但是我们学到现在还不能实现自己输入这个情况,那么与我们现实生活中其实是相悖的,所以我们需要做的其实就是使用一个方法,然后实现这个目标。
这个就是可以输入自己想要的东西:
Scanner input = new Scanner(System.in);(这个就是系统输入,对应的是系统输出)
int num = input.nextInt();(对于int来说)
而这个Scanner是前人总结的经验之谈,所以我们需要引用一个包 import java.util.Scanner; 使用这个之后就能输入值了.
import java.util.Scanner;
public class Price {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int number = input.nextInt();
System.out.println("你输入的这个数字是: " + number);
}
}
如果是这样子输入的话会导致 什么都没有(因为没有任何的提示你要输入什么东西)虽然你输入一个数字 这个代码没有任何问题,但是对于用户来说你这个简直是天书,完全不知道要输入什么写一段代码需要考虑到用户好不好用,这个叫做用户交互,所以改成这样最好。
import java.util.Scanner;
public class Price {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入一个整数 ");
int number = input.nextInt();
System.out.println("你输入的这个数字是: " + number);
}
}
这样子的输出是这样的
这个才是体谅用户的,你告诉用户要干什么,用户才能输入一个数字。
如果并不是一个整数呢,而是一个小数那么应该这样写
import java.util.Scanner; // 引入 Scanner
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in); // 创建 Scanner 对象
System.out.print("请输入一个 double 类型的数字: ");
double num = input.nextDouble(); // 读取用户输入的 double
System.out.println("你输入的数字是: " + num);
input.close(); // 关闭 Scanner
}
}
在这里有两个不一样的点 第一:double num = input.nextDouble(); // 读取用户输入的 double 改成nextDouble就行。 第二:在最后有一句话 input.close(); // 关闭 Scanner 这个是为了安全性的,每次输入完 最好使用这句话关闭Scanner
输入的是double的类型,所以代码不再是int num = input.nextInt();而是double num = input.nextDouble();。 同样还有char String两种数据类型如果要输入这两个的话需要不同的命令
String类型可以是两个 第一个类型
import java.util.Scanner;
public class Price {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入一个单词 ");
String word = input.next();
System.out.println("你输入的这个单词是: " + word);
}
}
这个类型使用了nextLine()读取了整行字符串。‘ 第二个类型
import java.util.Scanner;
public class Price {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入一个单词 ");
String word = input.next();
System.out.println("你输入的这个单词是: " + word);
}
}
这个类型直接使用next() 就可以 输出都是一样的
char类型的输入比较复杂
import java.util.Scanner; // 导入 Scanner 类
public class CharInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建 Scanner 对象
System.out.print("请输入一个字符: ");
char inputChar = scanner.next().charAt(0); // 读取用户输入的第一个字符
System.out.println("你输入的字符是: " + inputChar);
scanner.close(); // 关闭 Scanner,防止资源泄漏
}
}
char inputChar = scanner.next().charAt(0); // 读取用户输入的第一个字符 在charAt(0)中式第一个字母,为什么式第一个字母,是因为在中间的零,叫做索引,索引从零开始 apple(01234)如果写4,那么最后的结果就是e。
输出是这样的
当然如果你输入的是一个字母 也是可以的