1.运算符

(1)普通的四则运算符: + - * / (算数运算符)
普通的运算符不能改变变量本身的值,除非将表达式的结果重新赋值,才会改变变量本身的值
(2)取余/求模:%(算术运算符)
6%5==1 [余数为1]
4%2==0 [余数为0表示整除]
练习:测试取余运算符(算术运算符)
package cn.tedu.basic;
/**
* 这个类用来测试取余运算符(算术运算符)
*/
public class TestOperator {
//1.创建程序的入口函数main
public static void main(String[] args) {
/**1.基本的四则运算符 + -/ * */
//1.除法与取余
System.out.println(35/10);//3 int/int->int
/**2.%为取余符号,运算结果与余数的值相同
* 整除是取余的结果就是0
*/
System.out.println(35%10);//5
System.out.println(10%2);//0
//2.练习1:求一个两位数的十位与个位
int x=59;
System.out.println(59/10);
System.out.println(59%10);
//3.练习2:求一个三位数的百位十位与个位
int y=159;
System.out.println(159/100);
System.out.println(159/10%10);
System.out.println(159%10);
int z=345;
System.out.println(345/100);
System.out.println(345%100/10);
System.out.println(345%10);
}
}
(3)自增自减运算符
自增 ++ 表示给变量的值+1
自减 -- 表示给变量的值-1
前缀式:++a --a :先改变变量的值,再使用
后缀式:a++ a-- :先使用,再改变变量本身的值
注意:前面的代码会对后面的代码产生影响
注意:前缀式和后缀式都会改变变量的值,只是时机不同
练习:测试自增自减运算符(算术运算符)
package cn.tedu.basic;
/**
* 本类用于测试自增自减运算符(算术运算符)
*/
public class TestOperator2 {
// 1.创建程序的入口函数
public static void main(String[] args) {
/**
* 自增运算符:++ :变量的值+1
* 自减运算符:-- :变量的值-1
* 前缀式:符号写在前 ++a --a,先改变变量本身的值再使用
* 后缀式:符号写在后 a++ a--,先使用再改变变量本身的值
*/
int a=1;//先使用再自增
System.out.println(a++);//1
System.out.println(a);//2
int b=1;//先自增再使用
System.out.println(++b);//2
System.out.println(b);//2
int c=1;
System.out.println(c--);//1
System.out.println(c);//0
int d=1;
System.out.println(--d);//0
System.out.println(d);//0
/*
* 前面的代码会对后面的代码有影响
* 自增自减运算符会改变变量本身的值
* 但是普通的四则运算符不会改变变量本身的值,只会改变算式的结果
*/
System.out.println(c);
System.out.println(--c-c-c--);//(-1)-(-1)-(-1)=1
System.out.println(c);//-2
System.out.println(--a-a+--a);//1-1+0=0
System.out.println(a);//0
System.out.println(b+++--b+b--);//2+2+2=6
System.out.println(b);//1
System.out.println(d--+--d+d--);//0+(-2)+(-2)=-4
System.out.println(d);//-3
}
}
(4)比较运算符
- [ >= <= > < ]
- ==[左右两边的值是否相等] !=[左右两边的值是否不相等]
- 注意:比较运算符的结果都是Boolean类型
(5)逻辑运算符:& && | ||
& 单与(and):全真则真
&& 双与/短路与:判断逻辑与单与相同,只不过添加了一个短路的效果.如果左边以判断为false,右边则不需判断
1 1 1
1 0 0
0 1 0
0 0 0
| 单或(or):全假则假
|| 双或/短路或:判断逻辑与单或相同,只不过添加了一个短路的效果.如果左边以判断为true,右边则不需判断
1 1 1
1 0 1
0 1 1
0 0 0
(6)三目运算符: 1?2:3
格式:1号位置为表达式,1为真取2号位置的值,1为假取3号位置的值
练习:运算符的综合练习
package cn.tedu.basic;
import java.util.Scanner;
/**
* 接收用户输入的两个整数,比较这两个数的最大值(三目运算符)
*/
public class TetMaxNum {
//0.创建程序的入口函数
public static void main(String[] args) {
//1.提示并接收用户输入的两个整数
System.out.println("输入要比较的第一个数:");
int a=new Scanner(System.in).nextInt();
System.out.println("输入要比较的第二个数:");
int b=new Scanner(System.in).nextInt();
//2.比较出这两个数的最大值
// System.out.println("比较两个数的大小:");
// int max=a>b?a:b;
// //3.将比较的结果输出到控制台
// System.out.println("这两个数中,最大值是:"+max);
//思考题:利用三元运算符,比较三个数的最小值
System.out.println("输入要比较的第三个数:");
int c=new Scanner(System.in).nextInt();
int m=a>b?b:a;
int r=m>c?c:m;
System.out.println("这三个数中,最小值是:"+r);
}
}
(7)赋值运算符
= 普通的赋值运算符,等号右边的值交给等号左边来保存
练习:运算符的综合练习
package cn.tedu.basic;
import java.util.Scanner;
/**
* 本类用于运算符的综合练习
*/
/*
* 需求:接收用户输入的年份,判断是平年还是闰年
* 如果年份是闰年,需要满足下面两个条件之一:
* 条件1:能被4整除,并且不能被100整除
* 条件2:能被400整除
*/
public class TestYear {
//0.创建程序的入口函数main
public static void main(String[] args) {
//1.提示并接收用户输入的函数
System.out.println("请输入年份:");
int year=new Scanner(System.in).nextInt();
//2.定义一个变量用来保存结果
String result="平年";
//3.只要符合闰年的判断条件,就改为闰年
if(year%400==0||(year%4==0&&year%100!=0)) {
result="闰年";
}
//4.将结果输出
System.out.println(year+"年是"+result);
}
}
2.流程控制

(1)顺序结构
程序执行先找到入口函数main(),然后再一行一行往下执行,并且所有的代码都会执行到
顺序结构可以帮我们进行计算,输出等操作,但是不能选择性的执行代码
(2)分支结构
分支结构可以帮我们先做判断,根据判断,选择性执行代码
单分支结构
if(判断条件){
符合判断条件后要执行的代码,如果不符合判断条件,跳过此句
}
多分支结构
if(判断条件) {
满足判断条件,执行代码1
}else{
不满足判断条件,执行代码2
}
char gender='男';
if(gender=='男') {
System.out.println("男生");//如果满足条件执行此代码
}else {
System.out.println("女生");//如果不满足条件执行此代码
}
嵌套分支结构
if(判断条件1) {
满足判断条件1,执行代码1
}else if(判断条件2) {
满足判断条件2,执行代码2
}else if(判断条件3) {
满足判断条件3,执行代码3
}else{
满足判断条件4,执行代码4
}
练习:嵌套分支的商品打折案例
package cn.tedu.basic;
/**
* 本类用于练习嵌套分支的商品打折案例
*/
import java.util.Scanner;
/**
* 需求: 接收用户输入的原价。满1000打9折;满2000打8折;满5000打5折
*/
public class TestDiscount {
//0.创建程序的入口main
public static void main(String[] args) {
//1.提示并接收用户输入的原价
System.out.println("请您输入商品的原价:");
double price=new Scanner(System.in).nextDouble();
//2.定义一个变量用来保存最终支付的实际价格
double count=price;
//判断原价在什么档位
if(price<=0) {
System.out.println("输入错误!");
}else {
if(price>=5000) {//满5000
count=price*0.5;//打5折
}else if(price>=2000) {//满2000
count=price*0.8;//打8折
}else if(price>=1000) {//满1000
count=price*0.9;//打9折
}else {
count=price;
}
//输出结果
System.out.println("您的原价是:"+price+",需要支付的实际价格是:"+count);
}
}
}
练习:分支结构统计学员得分段位
package cn.tedu.basic;
/**
* 本类用于练习分支结构统计学员得分段位
*/
import java.util.Scanner;
/**
*90分及以上 优秀
*80-89 良好
*70-79 中等
*60-69 及格
*60分及以下 不及格
*/
public class TestScore {
//0.创建程序的入口函数
public static void main(String[] args) {
int statue=0;
/**
* 增强程序的健壮性
* 我们需要在判断段位之前,判断用户的数据是否有效
*/
do{
//1.提示并接收学员的成绩
System.out.println("请输入学员的成绩:");
int score=new Scanner(System.in).nextInt();
//2.判断学员的分数段位,并输出结果
if(score>100||score<0) {
System.out.println("输入错误!");
statue=1;
}else {
if(score>=90) {
System.out.println("优秀");
statue=0;
}else if(score>=80) {
System.out.println("良好");
statue=0;
}else if(score>=70) {
System.out.println("中等");
statue=0;
}else if(score>=60) {
System.out.println("及格");
statue=0;
}else {//表示上面的所有条件都不满足,才会执行此处的代码
System.out.println("不及格");
statue=0;
}
}
}while(statue==1);
}
}
(3)选择结构
switch结构
- 1.变量a的类型支持byte,short,int,char,string
- 2.执行顺序:会拿着变量a的值,依次与每个case后的值做比较
如果匹配到,就会执行这个case后的语句
如果case后面没有加break,会执行后面所有的case的代码(包括default),我们称之为’'穿透")- 3.如果设置了default保底选项,没有任何case匹配到,就会执行default后的语句
- 4.break与default是保底选项,可加可不加,根据自己的业务进行选择
练习:选择结构switch
package cn.tedu.basic;
/**
* 本类用于练习选择结构switch
*/
/*
* 总结:
* 1.变量a的类型支持byte,short,int,char,String
* 2.执行顺序:会拿着变量a的值,依次与每个case后的值作比较
* 如果匹配到,就会执行这个case后的语句
* 注意:如果case后面没有加break,会执行后面所有的case的代码(包括default),我们称之为"穿透"
* 3.如果设置了default保底选项,没有任何case匹配到,就会执行default后的语句
* 4.break与default是可选项,可加可不加,根据自己的业务进行选择
*/
public class TestSwitch {
//0.创建入口函数main
public static void main(String[] args) {
int a=3;
switch(a) {
case 1:System.out.println("结果是1");break;
case 2:System.out.println("结果是2");break;
case 3:System.out.println("结果是3");break;
case 4:System.out.println("结果是4");break;
case 5:System.out.println("结果是5");break;
default:System.out.println("没有匹配成功");
}
}
}
练习:选择结构switch的巩固练习
package cn.tedu.basic;
/**
* 本类用于switch结构的巩固练习
*/
public class TestSwitch2 {
public static void main(String[] args) {
String s="周四";
switch(s) {
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("不吃");
}
}
}
注意事项:
(1)变量a支持的类型:byte short int char string
(2)变量a的数据类型与case后value的数据类型保持一致
(3)如果没有添加break,并且又有case没有被匹配到,会发生"穿透"现象,包括default
(4)case的个数没有具体的规定
(5)如果添加了default保底选项,有没有任何case匹配到,读取default后的语句
(6)一般我们习惯在每个case后面添加一个break
(4)循环结构
当你想多次重复干某一件事的时候,可以使用循环语句
for(开始条件;循环条件;更改条件) {
循环
}
for(int i=1;i<=10;i++) {
System.out.println(i);
}
3.复习:
(1)分支结构复习
完成单分支结构,多分支结构,嵌套分支结构的复习
package cn.tedu.review;
import java.util.Scanner;
/**
* 本类用于复习分支结构
*/
public class TestIf {
//0.创建程序的入口函数main
public static void main(String[] args) {
/**
* 1.单分支结构
* 接收用户在键盘输入的行数
*/
System.out.println("请输入一个数a:");
int a=new Scanner(System.in).nextInt();
if(a>=50) {
System.out.println("满50!");
}
if(a>=30&&a<50) {
System.out.println("满30!");
}
/**
* 2.多分支结构
* 接收用户在键盘输入的行数
*/
System.out.println("用户输入了多少行代码?");
int num=new Scanner(System.in).nextInt();
if(num>=70000) {
System.out.println("恭喜你,拥有高新offer!");
}else{
System.out.println("加油!");
}
/**
* 3.嵌套分支结构
* 接收用户的身高和体重,测试用户的BMI指数
* 计算式=体重/身高的平方,得到的结构按如下输出:
* <18.5过轻 <=22.9正常 <=24.9偏胖 <=40重度配胖 更大是极度肥胖
*/
System.out.println("请输入您的身高:");
double h=new Scanner(System.in).nextDouble();
System.out.println("请输入您的体重:");
double w=new Scanner(System.in).nextDouble();
double b=w/(h*h);
System.out.println("您的BMI指数为:");
if(b<0) {
System.out.println("BMI指数错误");
}else {
if(b<18.5) {
System.out.println("过轻");
}else if(b<=22.9) {
System.out.println("正常");
}else if(b<=24.9) {
System.out.println("偏胖");
}else if(b<=40) {
System.out.println("重度配胖");
}else {
System.out.println("极度肥胖");
}
}
}
}
(2)选择结构复习
完成switch选择结构的复习
package cn.tedu.review;
import java.util.Scanner;
/**
* 本类用于复习选择结构
*/
public class TestSwitch {
public static void main(String[] args) {
System.out.println("请输入您的令牌号:");
String s=new Scanner(System.in).nextLine();
switch(s) {
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;
case "荒":System.out.println("请玩家进入荒字八号房间");break;
default :System.out.println("输入错误");
}
}
}
(3)循环结构复习
完成for循环结构的复习
package cn.tedu.review;
public class TestFor {
public static void main(String[] args) {
/**1.格式
* for(开始条件;循环条件;更改条件){
* 符合条件的语句
* }
*/
//1.打印数字0-10
for(int i=0;i<=10;i++) {
System.out.print(i+" ");
}
System.out.println();
//2.打印数字10-0
for(int i=10;i>=0;i--) {
System.out.print(i+" ");
}
System.out.println();
//3.打印100次good good
for(int i=0;i<100;i++) {
System.out.println("good good");
}
//4.打印8 88 888 8888
//开始:8 结束:8888 如何变化:*10+8
for(int i=8;i<=8888;i=i*10+8) {
System.out.print(i+" ");
}
}
}
本文详细介绍了运算符如四则运算、取余、自增自减、比较和逻辑运算,以及流程控制的顺序结构、分支结构、选择结构和循环结构。通过实例演示了如何运用这些概念解决实际问题,如判断、打折和成绩统计等。
94

被折叠的 条评论
为什么被折叠?



