JAVA基础学习 day_02
逻辑表达式
- && 和& A&&B 只要A为真,B就不进行判断。& 不管A为真为假,B都要进行判断。``
- ||和| 和上述一样
- A^B A和B不同为真,相同为假。
- !非
- a>b? a:b; a>b为真,返回a,否则返回b。可以嵌套。
6.```java Jpublic class QFTest_10 {
public static void main(String []args){
int score=85;
String result=score>90?“优秀”:score>80?“及格”:“良好”;
System.out.println(result);
}
} ` - ">>>"无符号右移,符号位补零。
“>>”符号位复数补一,正数补零。右移一位除2,左移一位乘2。 - Scanner nextline()遇到行结束符返回,读取行结束符。next()遇到空格或者行结束符返回,但不读取行结束符。
Scanner input=new Scanner(System.in);
System.out.println("请输入名字:");
String name=input.next();
System.out.println("姓名:"+name);
System.out.println("请输入性别:");
String sex=input.nextLine();
System.out.println("你的性别:"+sex);
//22答案
请输入名字:
20
姓名:20
请输入性别:
你的性别:
nextline()读取行结束符,并返回。所以要么都用next(),或者都用nextline()。
switch()可以为byte short int String 枚举
基本类型的默认值
byte short int long 默认值为0。
float 0.0
double 0.0
char ‘’
boolean false
引用数据类型默认值为null。
break 默认跳出最近的循环,在二重或者多重循环种,如果想跳出外面的循环,可以加标记。
//跳出最近的循环
for(int i=1;i<3;i++){
for(int j=0;j<=3;j++){
System.out.println(i+"---"+j);
if(j==1)
break;
}
}
//答案
1---0
1---1
2---0
2---1
//跳出其他循环
label:for(int i=1;i<3;i++){
for(int j=0;j<=3;j++){
System.out.println(i+"---"+j);
if(j==1)
break label;
}
}
//答案
1---0
1---1
continue 和break相似。
//continue 最近
for(int i=1;i<3;i++){
for(int j=0;j<3;j++){
if(j==1)
continue;
System.out.println(i+"---"+j);
}
}
//答案
1---0
1---2
2---0
2---2
//continue 最远
label:for(int i=1;i<4;i++){
for(int j=0;j<3;j++){
if(j==2)
continue label;
System.out.println(i+"---"+j);
}
}
//答案
1---0
1---1
2---0
2---1
3---0
3---1
在带有返回值的方法中,如果有if判断语句,每个分支需要把return全写出来,一个有返回值的方法,只能有一个唯一的出口
//示例
public static void main(String[]args){
int a=practice(2);
int b=practice(-4);
System.out.println(a+"*****"+b);
}
public static int practice(int num){
if(num>0)
return 1;
else
return -1;
}
//答案
1*****-1
无穷递归会导致栈溢出 stackoverflowError
计算机运行方法、算数、程序大部分在栈中进行的,先进后出。理解栈,大部分问题都会明白。
递归的思想是从后往前推,而且一定要有出口。
能有递归解决的问题,用循环都能解决。