(基础+运算符+流程控制)相关案例和重点
-
int类型:
- 变量在使用之前必须赋值
package d5.oop; public class Person { public static void main(String[] args) { int a; //定义变量 a=50; //给变量赋值 System.out.println(a); } } 50
- 变量直接定义赋值加输出:
package d5.oop; public class Person { public static void main(String[] args) { int a=60; int b=90; System.out.println(a); System.out.println(b); } } 60 90
- int定义两数相加:
package d5.oop; public class Person { public static void main(String[] args) { int a=60; int b=90; System.out.println(a+b); } } 150
- 对变量重新赋值(重新赋值的时候方法名后面可以不加类名)
//int类型的 package d5.oop; public class Person { public static void main(String[] args) { int a=60; System.out.println(a); a=80; System.out.println(a); } } 60 80 //String类型的 package d5.oop; public class Person { public static void main(String[] args) { String a="hello"; String b="hi"; System.out.println(a); System.out.println(b); a="lo"; b="lp"; System.out.println(a); System.out.println(b); } } hello hi lo lp
- 一条语句定义多个变量
package d5.oop; public class Person { public static void main(String[] args) { int a=60,b=90,d=100; System.out.println(a); System.out.println(b); System.out.println(d); } } 60 90 100
- int进行加减计算
package d5.oop; public class Person { public static void main(String[] args) { int a=0; a++; a=a+2-1; a=a+2-1; System.out.println(a); } } 3
- 进制表示
- 二进制:以0b开头;
- 八进制:以0开头;
- 十进制:电脑默认十进制,不用加修饰;
- 十六进制:0x开头;
- 关键字必须小写
-
标识符:(类,方法,变量)
- 方法跟变量是小驼峰命名:firstName
- 类名是大驼峰命名:GoodStudent
- 键盘入录:
package d5.oop; import java.util.Scanner; // 导包 public class Person { public static void main(String[] args) { Scanner l=new Scanner(System.in); // 创建Scanner对象 System.out.println("请输入整数"); int i=l.nextInt(); // 接收数据 System.out.println(i); } } 请输入整数 10 10
- 键盘入录+运算:
package d5.oop; import java.util.Scanner; public class Person { public static void main(String[] args) { Scanner l=new Scanner(System.in); // 创建Scanner对象 int i=l.nextInt(); // 接收数据 int n=l.nextInt(); int h=l.nextInt(); System.out.println(); System.out.println(i+n-h); l.close(); } } 4 6 9 1
-
System.out.println( ) ; 中的计算
- 整数可以进行无误加减乘除
- 小数在加减乘除的时候可能会报错
- System.out.println(1+2+“abc”+1+2 ) ; // 3abc12 字符串后面的数据默认是字符串类型
- System.out.println('a'+2); // 99
-
类型转换
- 在转化时字符类型时,小数类型最好选double,byte,short,char类型最好选int,字符类型最好选String
- byte<short<int<long<float<double
-
将输入的个十百位全部输出
package ko; import java.util.Scanner; public class k1 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); // 新建的scanner在Scanner类中 System.out.println("输入三位数"); int ad=scanner.nextInt(); System.out.print("个位是"+ad%10+"\t"); // 输出个位 System.out.print("十位是"+ad/10%10+"\t"); // 输出十位 System.out.print("百位是"+ad/100%10+"\t"); // 输出百位 scanner.close(); } } 输入三位数 862 个位是2 十位是6 百位是8
-
强制转换:(小变大不用强转,大变小必选强转)(将想要转化的类型加括号,后面跟上运算的方法名)
byte a=50; // 0011 _ 0010 ,最左面的0是符号位,0表示正1表示负不参与运算 int v=a; // (隐式转换)
int a=300; byte b=(byte)a; // 将a强制转换为byte类型 (强制转化) byte a=10; byte b=20; byte ab=(byte)(a+b); // 如果转化的数超过了原有界限,那么就执行符号位不变,原码取反再加1进行赋值 System.out.println(c); 30
-
字符相加减:(在加减之前会自动转化为ASCII表对应的数值)
package ko; public class k1 { public static void main(String[] args) { char v='a'; int a=v+5; System.out.println(a); } } 102
-
a++跟++a的区别
package ko; public class k1 { public static void main(String[] args) { int a=10; int b=a++; // b为自增之前的值,a=11,b=10 int c=++a; // c为自增之前的值,a=12,c=12 System.out.println("a:"+a); System.out.println("b:"+b); System.out.println("c:"+c); } } a:12 b:10 c:12
-
入录数值的比较:
package ko; import java.util.Scanner; public class k1 { public static void main(String[] args) { Scanner a=new Scanner(System.in); System.out.println("请输入你的数值"); int k=a.nextInt(); System.out.println("请输入对方的数值"); int l=a.nextInt(); boolean p=k>l; System.out.println(p); } } 请输入你的数值 5 请输入对方的数值 9 false
-
逻辑运算符:
& : 并且,两边都为真结果才是真(可以进行两数判断,也可以进行二进制运算0为false 1为true)
| : 或者,两边都为假结果才是假
^ : 异或,相同false不同true(很少用)
! : 取反
与(&):
package ko;
public class k1 {
public static void main(String[] args) {
int a=10;
int b=20;
boolean m=++a<10 & ++b<30; // 不管a为真还是假,b都要进行运行
System.out.println(m);
System.out.println(a);
System.out.println(b);
}
}
false
11
21
package ko;
public class k1 {
public static void main(String[] args) {
int a=7;
int b=1;
System.out.println(a&b);
}
}
1
- 短路逻辑运算符:
&&:短路与
||:短路或
短路与(&&):
package ko;
public class k1 {
public static void main(String[] args) {
int a=10;
int b=20;
boolean m=++a<10 && ++b<30; // 如果a的值为假,那么b就不进行运行了
System.out.println(m);
System.out.println(a);
System.out.println(b);
}
}
false
11
20
- 运算符
& : 0为false ,1为true
| : 0为false ,1为true
<< : 向左移位,低位补零
》》: 向右移位,最高位根据符号进行填充,负数就填1,正数就填0
》》》:向右移位,高位直接加0
短路或(||) : 案例
package ko;
import java.util.Scanner;
public class k1 {
public static void main(String[] args) {
Scanner k=new Scanner(System.in);
System.out.println("输入一个整数");
int a=k.nextInt();
System.out.println("输入下一个整数");
int b=k.nextInt();
boolean w=(a==6||b==6)||((a+b)%6==0);
System.out.println(w);
k.close();
}
}
输入一个整数
5
输入下一个整数
7
true
总结:在逻辑运算符中只能用true跟false进行判断,必须调用boolean值
- 三元运算符:
**格式:关系表达式 ?表达式1:表达式2 ; **
int max=a>b ? a : b;
// 示例
public class k1 {
public static void main(String[] args) {
int a=10;
int b=20;
int ma=a>b?a:b;
System.out.println(ma);
}
}
-
案例:两只老虎
package ko;
import java.util.Scanner;
public class k1 {
public static void main(String[] args) {
Scanner m=new Scanner(System.in);
System.out.println("第一只老虎体重");
int o=m.nextInt();
System.out.println("第二只老虎体重");
int k=m.nextInt();
System.out.println(o==k ? "体重相等":"不相等"); // 三元运算符
m.close();
}
}
第一只老虎体重
90
第二只老虎体重
90
体重相等
-
案例:三个和尚
package ko;
import java.util.Scanner;
public class k1 {
public static void main(String[] args) {
Scanner m=new Scanner(System.in);
System.out.println("第一个和尚");
int o=m.nextInt();
System.out.println("第二个和尚");
int k=m.nextInt();
System.out.println("第三个和尚");
int l=m.nextInt();
System.out.println(Math.max((o > k ? o : k), l)); // 运用三元运算符跟max结合找出最大值,max只能判断两个数大小
m.close();
}
}
第一个和尚
190
第二个和尚
150
第三个和尚
168
190
package ko;
import java.util.Scanner;
public class k1 {
public static void main(String[] args) {
Scanner m=new Scanner(System.in);
System.out.println("第一个和尚");
int o=m.nextInt();
System.out.println("第二个和尚");
int k=m.nextInt();
System.out.println("第三个和尚");
int l=m.nextInt();
int lo=o>k?o:k; // 三元运算符判断
int po=lo>l?lo:l; // 三元运算符二重判断
System.out.println("身高最高的和尚是:"+po);
m.close();
}
}
第一个和尚
190
第二个和尚
150
第三个和尚
168
身高最高的和尚是:190
带括号的先进行运算
-
案例.选小吃
package ko;
import java.util.Scanner;
public class ko {
public static void main(String[] args) {
Scanner m=new Scanner(System.in);
System.out.println("输入你的钱数");
double a=m.nextDouble();
if (a>100){
System.out.println("吃大餐");
}
if (a<100){
System.out.println("小吃");
}
m.close();
}
}
输入你的钱数
11.69
小吃
案例.影院选座(嵌套)
package ko;
import java.util.Scanner;
public class ko {
public static void main(String[] args) {
Scanner m = new Scanner(System.in);
System.out.println("输入你的钱数");
int a = m.nextInt();
if (a < 101 && a > 0) {
if (a % 2 == 0) {
System.out.println("坐左面");
}
else {
System.out.println("坐右面");
}
m.close();
}
else{
System.out.println("您的输入有误");
}
}
}
输入你的钱数
25
坐右面
案例:自动驾驶
package ko;
public class light {
public static void main(String[] args) {
boolean yellow = false;
boolean green = false;
boolean red = true;
if (yellow) { // 是true的话就执行返回语句,false就不执行
System.out.println("witer");
} else if (green) {
System.out.println("go go go");
} else {
System.out.println("stop");
}
}
}
stop
- swicth语句:
swicth(表达式){
case 值1:
语句体1;
break; // 表示跳出,不能省略
case 值2;
语句体2;
break;
defult: // 以上情况都不满足时执行的,可以省略
语句体n+1;
break;
}
案例:运动计划
package ko;
import java.util.Scanner;
public class ko {
public static void main(String[] args) {
Scanner m = new Scanner(System.in);
System.out.println("输入星期");
String a = m.next();
switch (a) {
case "一":
System.out.println("跑");
break;
case "二":
System.out.println("游泳");
break;
case "三":
System.out.println("走");
break;
case "四":
System.out.println("琦");
break;
case "五":
System.out.println("拳");
break;
case "六":
System.out.println("爬");
break;
case "七":
System.out.println("吃");
break;
default:
System.out.println("有误");
break;
}
m.close();}
}
输入星期
一
跑
穿透case
package ko;
import java.util.Scanner;
public class ko {
public static void main(String[] args) {
Scanner m = new Scanner(System.in);
System.out.println("输入星期");
String a = m.next();
switch (a) {
case "一":
case "二":
case "三":
case "四":
case "五":
System.out.println("工作日");
break;
case "六":
case "七":
System.out.println("休息日");
break;
default:
System.out.println("有误");
break;
}
m.close();}
}
输入星期
六
休息日
案例:统计数字(for循环)
package ko;
import java.util.Scanner;
public class ko {
public static void main(String[] args) {
Scanner m = new Scanner(System.in);
System.out.println("输入开始范围");
int a = m.nextInt();
System.out.println("输入结束范围");
int b = m.nextInt();
int sum=0;
for (int i = a; i < b; i++) {
if (i%3==0 && i%5==0){
System.out.println(i);
sum++;
}
}
System.out.println("成立的个数"+sum);
m.close();}
}
输入开始范围
10
输入结束范围
60
15
30
45
成立的个数3
while循环语句(不知道循环的次数时)
int i=1;
while(i<5){
System.out.println(i);
i++;
}
1
2
3
4
案例:需要折叠的次数
package ko;
import java.util.Scanner;
public class ko {
public static void main(String[] args) {
Scanner m = new Scanner(System.in);
System.out.println("输入数字");
Double a = m.nextDouble(); // 珠穆朗玛峰的高度
Double b =0.1; // 纸张厚度
int sum =0; // 折叠次数
while (b<a){
b=b*2;
sum++;
}
System.out.println("需要折的次数"+sum);
m.close();
}
}
输入数字
8844.3
需要折的次数17
package ko;
import java.util.Scanner;
public class d2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("输入高度");
Double a=s.nextDouble();
Double b=0.1;
int sum=0;
for (Double i = b; i < a; i=i*2) {
sum++;
}
System.out.println("折叠次数"+sum);
}
}
输入高度
8844.3
折叠次数17
案例:回文数
package ko;
import java.util.Scanner;
public class d2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("输入数字");
int m=s.nextInt();
int sum=0;
int ge=0;
while (m!=0) { // 在不知道要循环多少次的时候用while
ge=m%10; // ge位就是m/1%10,十位是m/10%10……
m=m/10; // 用完一位后就消掉一位
sum=sum*10+ge; // 按照位数进行求和
}
System.out.println(sum);
s.close();}
}
输入数字
123456789
987654321
案例:只用加减算整数乘除
package ko;
import java.util.Scanner;
public class d1 {
public static void main(String[] args) {
Scanner o=new Scanner(System.in);
System.out.println("输入被除数");
int dividend= o.nextInt();
System.out.println("输入除数");
int divisor=o.nextInt();
int sum=0;
while (dividend>=divisor){
dividend-=divisor;
sum++;
}
System.out.println("商为"+sum);
System.out.println("余数为"+dividend);
o.close();}
}
输入被除数
80
输入除数
3
商为26
余数为2
continue(暂时终止--请假)跟break(彻底终止--辞职)
package ko;
public class d3 {
public static void main(String[] args) {
for (int i = 1; i < 5; i++) {
if(i==3){
continue; // if括号里面的数为几就暂时不执行几
}
if(i==4){
break; // if括号中的数为几,就从该位置向后都不能执行
}
System.out.println("老虎吃了第"+i+"个包子");
}
}
}
老虎吃了第1个包子
老虎吃了第2个包子
案例:逢七必过
package ko;
public class d3 {
public static void main(String[] args) {
for (int i = 1; i < 80; i++) {
if (i%10==7 || i/10%10==7 || i%7==0){
System.out.print("过"+"\t");
continue;
}
if (i%12==0){
System.out.println();
}
System.out.print(i+"\t");
}
}
}
1 2 3 4 5 6 过 8 9 10 11
12 13 过 15 16 过 18 19 20 过 22 23
24 25 26 过 过 29 30 31 32 33 34 过
36 过 38 39 40 41 过 43 44 45 46 过
48 过 50 51 52 53 54 55 过 过 58 59
60 61 62 过 64 65 66 过 68 69 过 过 过 过 过 过 过 过 过 过
案例:求平方根
package ko;
import java.util.Scanner;
public class ko {
public static void main(String[] args) {
Scanner m = new Scanner(System.in);
System.out.println("输入数字");
int a=m.nextInt();
for (int i = 1; i <= a; i++) {
if (i*i==a){ // 平方根能直接找到的方法
System.out.println(i);
break;
}
else if (i*i>a){ // 平方根不能直接找到的方法
System.out.println(i-1+"是平方根整数部分");
break;
}
}
m.close();}
}
输入数字
60
7是平方根整数部分
案例:判断是否为质数
package ko;
import java.util.Scanner;
public class ko {
public static void main(String[] args) {
Scanner m = new Scanner(System.in);
System.out.println("输入数字");
int a=m.nextInt();
int sum=0;
for (int i = a; i <= a; i++) {
for (int j = 2; j <a; j++) {
if (i%j==0){
sum++;
System.out.println(sum);
break;
}
}
if(sum==0){
System.out.println(a+"是一个质数");
}
else {
System.out.println(a+"不是一个质数");
}
}
m.close();}
}
输入数字
10000
1
10000不是一个质数
案例:猜数字小游戏
package ko;
import java.util.Random;
public class d3 {
public static void main(String[] args) {
Random r =new Random();
int R= r.nextInt(100)+1; // 表示从1开始,一直到100结束(包头不报尾)
// int R= r.nextInt(100) ,默认从0开始到99结束
System.out.println("随机数为:"+"\t"+R);
}
}
随机数为: 45
// 生成随机数
package ko;
import java.util.Random;
import java.util.Scanner;
public class d3 {
public static void main(String[] args) {
Random r =new Random();
int sum=0;
int R= r.nextInt(100)+1; // 1-100的随机数
Scanner s=new Scanner(System.in);
while (true){ // 插入无限次循环,直至条件成立
System.out.println("输入你猜的数字");
int p=s.nextInt();
if (p==R){
System.out.println("恭喜你,猜对了");
break;
}
if (p < R) {
System.out.println("猜小了");
}
else {
System.out.println("猜大了");
}
sum++;}
System.out.println("一共猜了"+sum+"次");
System.out.println("随机数"+R);
}
}
输入你猜的数字
50
猜小了
输入你猜的数字
80
猜小了
输入你猜的数字
90
猜小了
输入你猜的数字
95
猜大了
输入你猜的数字
94
恭喜你,猜对了
一共猜了4次
随机数94
// 猜数字小游戏
package ko;
import java.util.Random;
import java.util.Scanner;
public class d3 {
public static void main(String[] args) {
Random r =new Random();
int sum=0;
int R= r.nextInt(100)+1; // 1-100的随机数
Scanner s=new Scanner(System.in);
while (true){
System.out.println("输入你猜的数字");
int p=s.nextInt();
if (p==R){
System.out.println("恭喜你,猜对了");
break;
}
if (p < R) {
System.out.println("猜小了");
}
else {
System.out.println("猜大了");
}
sum++;
if (sum==3) {
System.out.println("恭喜你答对了");
break;
}
}
System.out.println("随机数"+R);
}
}
80
猜大了
输入你猜的数字
90
猜大了
输入你猜的数字
80
猜大了
恭喜你答对了
随机数17
// 猜了3次都没有猜中时会自动返回猜对了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架