运算符:+ - * / % ++ --
算数:
%:取余
++、--:自增1,自减1
单独使用时,在前后无差别;
a++
a--
被使用时,在前后有差别
a++的值为a的值
++a的值为a+1
关系:>, <, >=, <=, ==, !=
关系运算的结果为boolean型,true/false
逻辑:&&, ||, !
1> &&:短路与(并且),两边都为真,则为真,见false则false
第一个数为false时,发生短路(后面的不执行了)
||: 短路或(或者),有一边为真,则为真,见true则true
第一个数为true时,发生短路(后面不执行了)
!: 逻辑非(取反),非真则假,非假则真
2>逻辑运算符是建立在关系运算符之上
逻辑运算的结果也是boolean型
赋值:=,+=, -=, *=, =, %=
简单赋值运算符:=
扩展赋值运算符:+=, -=, *=, =, %=
扩展赋值运算,自动强转
//常见面试题:
short s1 = 5;
//s1 = s1 + 10; 编译错误,必须手动强转 s1 = (short)(s1 + 10)
s1 += 10; //正确,扩展赋值运算,自动强转字符串拼接:+
1>若两边为数字,则做加法运算
2>若有一边为字符串,则做字符串拼接
String a = "" + 10 + 20 + 30;
System.out.println(a); //102030 若有一边为字符串,则做字符串拼接三目/条件运算符:
1>语法:
boolean ? 数1 : 数2;
2>执行过程
计算Boolean的值:
若为true,则整个的结果为数1;
若为false,则整个的结果为数2;
int a = 5, b = 8;
int max = a>b ? a:b;
System.out.println(max); //8 代码可读性要好/*
闰年的判断公式:
1.能被4整除并且不能被100整除 year%4==0 && year%100!=0;
或者
2.能被400整除 year%400=0;
(year%4==0 && year%100!=0) || year%400=0;
*/
package day03;
import java.util.Scanner;
public class LeapYear {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scan.nextInt();
System.out.println("年份: " + year);
String str = ((year%4==0 && year%100==0) || year%400 ==0) ? year+"是闰年" : year+"非闰年";
System.out.println(str);
}
}分支结构
if结构:1条路
if...else结构:2条路
if...else if结构:多条路
package day03;
import java.util.Scanner;
public class ScoreLevel {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scan.nextInt();
System.out.println("成绩为:" + score);
if(score<0 || score >100){
System.out.println("成绩不合法");
}else if(score >=90){
System.out.println("A-优秀");
}else if(score >=80){
System.out.println("B-良好");
}else if(score >=60){
System.out.println("C-中等");
}else{
System.out.println("D-不及格");
}
}
}switch..case结构:多条路
优点:效率高、结构清晰
缺点:整数、相等
break:跳出switch
package exercisesAfterClass;
import java.util.Scanner;
public class CommandBySwitch {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请选择功能: 1.显示全部记录 2.查询登录记录 0.退出");
int command = scan.nextInt();
/*
if(command == 1){
System.out.println("显示全部记录");
}else if(command == 2){
System.out.println("查询登录记录");
}else if(command == 0){
System.out.println("退出");
}else{
System.out.println("输入错误");
}
*/
switch(command){
case 1:
System.out.println("显示全部记录");
break;
case 2:
System.out.println("查询登录记录");
break;
case 0:
System.out.println("退出");
default:
System.out.println("输入参数非法");
}
}
}
任何负责的程序逻辑,都可以通过三种结构来实现:
1>顺序结构:从上往下逐行执行,每句必走
2>分支结构:有条件的执行某语句,并非每句必走
3>循环结构:
/*
任务:当日事当日毕
1.将5个经典案例重做1次
Age年龄判断程序
LeapYear闰年判断程序
Cashier收银程序
ScoreLevel成绩成绩判断程序
CommandBySwitch命令解析程序
2.课后作业
1>第二天的第10/11题
2>第三天的所有(除了第8题)
*/
package day04;
//作业讲解
public class HomeWork {
public static void main(String[] args) {
//6.根据年份和月份算天数
int years = 2000;
int month = 3;
int days = 0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("days = 31");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("days = 30");
case 2:
if((years%4==0 && years%100!=0) || years%400==0){
System.out.println("days = 29");
}else{
System.out.println("days = 28");
}
}
//5.个人所得税
double salary = 10000.0;
//4.闰年判断
int year = 2000;
if((year%4 == 0 && year%100 != 0) || year%400 ==0){
System.out.println(year + "是闰年");
}else{
System.out.println(year + "不是闰年");
}
/*
* 补充:
*1. 变量的作用域/范围:
* 从变量的声明开始,到包含它的最近的大括号结束
*2. 变量的重名问题
* 最用于重叠时,变量不能重名
*/
//2.编写三个数的排序程序
int a=8, b=4, c=1;
if(a>b){
int t = a;
a = b;
b = t;
}
if(a>c){
int t = a;
a = c;
c = t;
}
if(b>c){
int t = b;
b = c;
c = t;
}
System.out.println(a);
System.out.println(b);
System.out.println(c);
/*
//1.求两个数中的最大值
int a=5, b=8;
int max = a>b ? a:b;
System.out.println("max="+max);
*/
}
}
文章转载自amazingweiwei,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




