day02
1、运算符
1>算术运算符:+(加),-(减),*(乘),/(除),%(取余),++(加加),–(减减)
int a = 5,b = 10,c = 15;
System.out.println(a+b);//15
System.out.println(b-1);//5
System.out.println(a*b);//50
System.out.println(b/a);//2
System.out.println(c/b);//1,整数相除结果只能是整数,整数其余的部分会被舍弃
++,–放在变量前后运算的结果截然不同
int a = 5,b = 10;
System.out.println(a++);//运算结果:5,a的值变为6
System.out.println(++b);//运算结果为:6,a的值变为6
int c = a++;
System.out.println(c);//结果:c=6,a=7
2>关系运算符:>(大于),<(小于),>=(大于等于),<=(小于等于),==(等于等于),!=(不等于)
关系运算符的运算结果为boolean类型
int a = 5,b = 10;
System.out.println(a>=b);//false
System.out.println(a==b);//false
System.out.println(a!=b);//true
3>逻辑运算符:&&(与),||(或),!(非),运算结果也是boolean类型
逻辑运算符常常与关系运算符一起使用
&&:两边都为true则为true,否则为false
||:两边都为false则为false,否则为true
!:表示取反,两边一真一假
int a = 5,b = 10,c = 15;
boolean d = a<=b && a>=c;
System.out.println(d);//false,d=true&&false=false
int e = a<=b || a>=c;
System.out.println(e);//true,e = true||false=true
4>赋值运算符:=,+=,-=,*=,/=,%=
int a = 5,b = 10;
System.out.println(b+=a);//15,b+=a即b=b+a=15;
int c = 15;
System.out.println(c/+a);//3,c/=a即c=c/a=3;
5>字符串连接运算符:+
String a = 3+4+"hello"+5;
System.out.println(a);//7hello5
String b = "hello" + " " + "world";//hello world
6>条件/三目运算符:boolean?数1:数2;
若boolean结果为true,则返回结果为数1;若boolean结果为false,则返回结果为false
int a = 5,b = 10;
int c = a>b?a:b;
System.out.println(c);//10,a>b结果为false,返回结果为b=10
2、分支结构
1>if结构,1条路
2>if…else结构,2条路
boolean flag = true;
if(flag){}//if结构
if(number>=100){语句块1
}else{语句块2
}//if...else语句
3>if…else if结构:多条路
if(条件语句1){
代码块1
}else if(){
代码块2
}else{
代码块3
}
4>嵌套if
if(条件1){
代码块1
if(条件2){
代码块2
}
}else{
代码块3
}
if(score>=0 && score<=100) {
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-不及格");
}
}else {
System.out.println("成绩不合法");
}
5>switch…case结构,多条支路
优点:效率高,结构清晰
缺点:表达式的值和case的值相等,且必须为整数
switch(表达式){
case 值1:
执行代码块1;
break;;
case 值2:
执行代码2;
break;;
case 值3:
执行代码3;
break;
default:
默认代码块;
}
break跳出switch语句,若中间未遇到break,则会向下移动;
若所有的值都不符合,则会默认执行default语句
int num = 4;
switch(num) {
case 1:
System.out.println("Monday");//星期一
break;
case 2:
System.out.println("Tuesday");//星期二
break;
case 3:
System.out.println("Wednesday");//星期三
break;
case 4:
System.out.println("Thursday");//星期四
break;
case 5:
System.out.println("Fraaday");//星期五
break;
case 6:
System.out.println("Saturday");//星期六
break;
case 7:
System.out.println("Sunday");//星期天
break;
default:
System.out.println("请输入合法数据");//不在上述任何一种情况之内
}
/* 输出:Thursday */
4,循环结构
任何复杂的程序逻辑都可以通过三种结构来实现:
1)顺序结构:从上往下逐行执行,每句必走
2)分支结构:有条件的执行某语句一次,并非每句必走
3)循环结构:有条件的执行某语句多次,并非每句必走
循环:反复执行一段相同或相似的代码
循环三要素:
1)循环变量的初始化
2)循环的条件(以循环变量为基础)
3)循环变量的改变(向着循环的结束变)
循环变量:在整个循环过程中所反复改变的那个数
1>while语句
while循环语句格式:
while(判断条件语句){
循环体语句;
}
2>do…while语句
do{
循环体语句;
} while(判断条件语句)
while和do…while的区别:while是先判断后执行,do…while是先执行后判断,且至少执行一次循环体语句。
3>for循环语句
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
特点:三个语句之间,语句可以省略,但分号不可省略;
下面我们举例分别用三种循环求1-100的和:
/* for循环 */
public class Sum {
public static void main(String[] args) {
int sum = 0;
for(int i=1;i<=100;i++) {
/* i=1,循环变量的初始化
* i <100,循环的条件
* i++,循环变量的改变
*/
sum+=i;
}
System.out.println(sum);
}
}
/* while循环 */
public class Sum {
public static void main(String[] args) {
int sum = 0,i=1;//循环变量的初始化
while(i<=100) {//循环的条件
sum+=i;
i++;//循环变量的改变
}
System.out.println(sum);
}
}
/* do...while循环 */
public class Sum {
public static void main(String[] args) {
int sum = 0,i=1;//循环变量的初始化
do {
sum+=i;
i++;//循环变量的改变
}while(i<=100);//循环的条件
System.out.println(sum);
}
}