1.运算符
1.1概述
算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。
1.2运算速查表
逻辑运算符连接两个关系表达式或布尔变量,用于解决多个关系表达式的组合判断问题
注意逻辑运算符返回的运算结果为布尔类型
通常,我们用0表示false,用1表示true
与:表示并且的关系
&单与: 1 & 2 ,结果想要是true,要求1和2都必须是true
&&双与(短路与):1 && 2 ,当1是false时,2会被短路,提高程序的效率
或:表示或者的关系
|单或: 1 | 2,结果想要是true,要求1和2只要有一个为true就可以
||双或(短路或):1 || 2,当1是true时,2会被短路,提高程序效率
短路运算,可以优化程序
&& 0&&__=0
|| 1||__=1
&与运算:有假则假,全真才真
0 | 1 | 0 |
---|---|---|
1 | 0 | 0 |
0 | 0 | 0 |
1 | 1 | 1 |
|或运算:有真则真,全假才假
1 | 0 | 1 |
---|---|---|
0 | 1 | 1 |
1 | 1 | 1 |
0 | 0 | 0 |
优先级控制:使用小括号辅助进行优先级管理。
1.3自增自减练习
package src.cn.tedu.basic;
//本类用于测试运算符
public class TestDemo01 {
public static void main(String[] args) {
System.out.println(7%2);//取余运算
//1.需求:用户输入三位数,分别输出每个位置上的数字
//789
System.out.println(789/100);//7
System.out.println(789%10);//9
System.out.println(789/10%10);//8
System.out.println("===========================");
//2.测试自增自减运算符
/**前缀式,符号在前,先变化再使用++a --a
* 后缀式,符号再后,先使用再变化 a++ a--
* ++:值加1 --:值减一*/
int a=1;
System.out.println(a++);//1,打印完后自增为2
System.out.println(a);//2
int b=1;
System.out.println(++b);//2,符号在前,先变化再使用
System.out.println(b);
System.out.println("*******************");
//a的初始值会受到之前程序的影响
//a的初始值为2
System.out.println(--a-a-a--);//-1,注意区分自增运算与加减法运算
//(1)-(1)-(1)
System.out.println(a);//0
//a的变化有--a和a--
}
}
PS:自练的提取三位数每位的数值
package src.cn.tedu.basic;
import java.util.Scanner;
//本类用于提取多位数的值
public class TestDamo02 {
public static void main(String[] args) {
/**
需求:用户输入三位数,分别输出每个位置上的数字
//789
System.out.println(789/100);//7
System.out.println(789%10);//9
System.out.println(789/10%10);//8
*/
System.out.println("请输入一个三位数t:");
int num = new Scanner(System.in).nextInt();
int a = num%10;//取个位数值
int b = num/10%10;//取十位数值
int c = num/100;//取百位数值
System.out.println("t的个位数为:"+a);
System.out.println("t的十位数为:"+b);
System.out.println("t的百位数为:"+c);
}
}
1.4求最值比较练习
package src.cn.tedu.basic;
import java.util.Scanner;
//本类用于计算两个数的最大值
public class TestDame03 {
public static void main(String[] args) {
//1.提示输入要比较的整数
System.out.println("请输入需要比较的第一个整数a:");
int a = new Scanner(System.in).nextInt();
System.out.println("请输入需要比较的第二个整数b:");
int b= new Scanner(System.in).nextInt();
//2.进行比较
/**三目运算符 1?2:3
*1是表达式,如果1位置的结果为true,此表达式的结果取2号位置
* 如果1位置的结果为false,此表达式的结果取3号位置*/
int max = a>b?a:b;
//3.输出
System.out.println("两者之间的最大值是:"+max);
}
}
PS:自练三个数的最大值比较,运用三目运算
package cn.tedu.basic;
import java.util.Scanner;
//本类用于练习运用三目运算求取 三个数的最大值
public class TestDamo04 {
public static void main(String[] args) {
//提示输入需要比较的三个数
System.out.println("请输入需要比较的第一个整数值a:");
int a = new Scanner(System.in).nextInt();
System.out.println("请输入需要比较的第二个整数值b:");
int b = new Scanner(System.in).nextInt();
System.out.println("请输入需要比较的第三个整数值c:");
int c = new Scanner(System.in).nextInt();
//做比较
//先比较a和b,赋值给t,在比较t与c,给出max
int t = a>b?a:b;
int max = t>c?t:c;
// 如何一行代码写出三个数值的比较
// int max = a>b?(a>c?a:c):(b>c?b:c);
System.out.println("您输入的三个整5数值的最大值是:"+max);
}
}
1.5求平年闰年的练习
package src.cn.tedu.basic;
import java.util.Scanner;
//本类用于测试输入的年份为平年还是闰年
//判断方法
//方式1:能被4整除,且不能被100整除
//方式2:能被400整除
public class TextDemo04 {
public static void main(String[] args) {
//提示并接受用户输入的年份
System.out.println("请输入需要判断的年份:");
int year = new Scanner(System.in).nextInt();
//定义一个变量保存结果
String result ="平年";//默认每年都是平年
/**解决方案一*/
//判断 方式1:能被4整除,且不能被100整除
// if(year % 4 == 0 ) {
// if(year % 100 != 0) {
// result = "闰年";//符合判断条件,修改结果为闰年
// }
// }
//方式2:能被400整除
// if(year % 400 == 0) {
// result ="闰年";
// }
/**解决方案二*/
/**判断结果 if(判断条件){满足判断条件后要执行的代码}*/
//if(条件一 || 条件二){结果是闰年}
//if((小条件一&&小条件二)条件一 || 条件二){结果是闰年}
/**先写结构,再填代码内容*/
if ((year%4==0 && year%100!=0)||year%400==0) {
result ="闰年";
}
//打印
System.out.println(year+"年是"+result);
}
}
2.方法 局部变量 成员变量
2.1方法
2.1.1概述
被命名的代码块,方法可以含参数可以不含参数,可以提高代码的复用性。
2.1.2格式
方法的修饰符 方法的返回值类型 方法名(参数列表){方法体}
public static void main(String[] args) {}
2.1.3方法的调用顺序
顺序执行代码,调用指定方法,执行完毕,返回调用位置
2.1.4练习:测试方法的调用顺序/参数/返回值
package cn.tedu.method;
/**本类用于测试方法*/
public class TextMethod {
public static void main(String[] args) {
System.out.println(1);
/**2. 我们通过方法名+参数列表的方式来调用方法的功能*/
method1();/**调用method1()方法*/
System.out.println(2);
method2(8);
int result=method3(3,5);
}
/**1.方法的修饰符 方法的返回值类型 方法名 (方法的参数) {方法体}*/
/*method1()方法测试方法的调用顺序*/
public static void method1() {
System.out.println(5);
System.out.println(6);
System.out.println(7);
}
/*method2()方法 测试方法的参数*/
public static void method2(int a) {
System.out.println("今天吃"+a+"碗饭");
}
/*method3()方法 测试方法的返回值类型*/
/**3.如果方法想要有返回值,必须修改返回值类型,
* 并且return对应返回值类型的结果
* 如果方法的返回值类型为viod,不允许有返回值*/
public static int method3(int a, int b) {
/**4.通过关键字return将本方法的结果返回到调用位置*/
return a+b;
}
}
2.1.5方法的重载
package cn.tedu.method;
/**本类用于测试方法的重载*/
public class TestMethod01 {
public static void main(String[] args) {
/**1.我们根据方法名+参数列表 来确定具体调用哪个方法*/
/**2.方法的重载
* 在同一个类中存在方法名相同但参数列表不同的方法
* 如果在同一个类中,同名方法的参数个数不同,一定构成重载
* 如果在同一个类中,同名方法的个数相同:需要查看对应位置上的参数类型,而不是参数名,与参数名无关
* (int a,String s)与(int s,String b)--重复的方法,不构成重载,参数类型
* (int a,String s)与(String b,int a)--构成重载
* */
//3.创建method方法
method();
//5.调用method(int)
method(666);
//7.调用method(int,String)
method(3,"我");
}
public static void method() {
System.out.println("无参数");
}
//4.创建一个含有int类型的参数的方法
public static void method(int n) {
System.out.println("参数是"+n);
}
//6.创建一个含有两个参数的method方法
public static void method(int a,String s) {
System.out.println(s+"要读"+a+"本书");
}
public static void method(String s,int a) {
System.out.println(s+"要读"+a+"本书");
}
}
//method方法要在main方法的括号外面
2.2变量
2.2.1概念
“变量类型 变量名 = 变量值 ;”
变量的使用原则:就近原则,即尽量控制变量的使用范围到最小
局部变量,成员变量
2.2.2练习:局部变量与成员变量测试
package cn.tedu.basic;
//本类用于测试变量的使用
public class TextVariable {
/**成员变量:
* 1)位置:类里方法外
* 2)初始化:无需手动初始化,会自动赋予对应的类型的默认值
* 3)作用域:在整个类中都生效,直到类消失,成员变量才消失
* */
//3.定义成员变量
static int count;
static int sum = 800;
//1.创建程序入口函数main
public static void main(String[] args) {
/**局部变量
* 1)位置 :在方法里/局部代码块里
* 2)初始化:必须手动初始化(赋值)
* 3)作用域:在方法里/局部代码快中,当 对应的代码块执行完毕,局部变量释放
* */
//2.定义局部变量
//变量的类型 变量名 变量值
int sum =100;
System.out.println(sum);
/**变量的就近原则:使用的是附近的变量100*/
System.out.println(count);
}
}
**新单词 **
undefined 未定义
applicable 合适,适合
arguments 参数
initailized 初始化