JavaSE教程-02Java基本语法-练习
- 请说出下面的运算结果及解释为什么
System.out.println(1+1+“1”);//?
System.out.println(“1”+1+1);//? - 请实现两个整数变量的交换
int a = 1;
int b = 2;
//经过交换之后,这里需要大家实现交换的代码 System.out.println(a);//2
System.out.println(b);//1 求三个整数中的最大数
某查询结果的记录数为66条,每页显示10条,请计算总页数有几页?
- 设计一个实验证明&和&&的区别
第一题答案
public class Zy03{
public static void main(String[] args){
System.out.println(1+1+"1");//21
/*
进行数据运算时是从前往后进行,前两个数为数字,所以直接相加得到2;
遇到第三个数据时,因为该数据时字符,所以会先把前面的计算的结果转换为字符后,再相加得到字符串21
*/
System.out.println("1"+1+1);//111
/*
因为开始运算时,前一个数据为字符,后一个为数字,所以会先把数字转为字符,在相加,后面一个数据处理同理
*/
}
}
第二题答案
public class Zy04{
public static void main(String[] args){
int a=1;
int b=2;
int c=a;
/*要实现a和b进行交换,必须先将a存储在一个新的变量中,
因为在第一实现交换后,a的值发生了变化,因此不能直接使用a来实现b的赋值*/
a=b;
b=c;
System.out.println("a="+a);//2
System.out.println("b="+b);//1
}
}
第三题答案
public class Zy05{
public static void main(String[] args){
//求三个数中的最大数
int a=1;
int b=2;
int c=3;
/*int max1=(a>b)?a:b;
int max2=(max1>c)?max1:c;
System.out.println(max2);*/
int max=(((a>b)?a:b)>c)?((a>b)?a:b):c;
System.out.println(max);
}
}
第四题答案
public class Zy06{
public static void main(String[] args){
//某查询结果的记录数为66条,每页显示10条,请计算总页数有几页?
int a=66;
//int a=80;
int b=10;
int c=a%b;
int page=(c==0)?(a/b):(a/b+1);
System.out.println(page);
}
}
第五题答案
public class Zy07{
public static void main(String[] args){
//设计一个实验证明&和&&的区别
/*
结论:
短路与&&,只要前面可以确定结果是false,那么后面就不管了
逻辑与&,就算前面可以确定结果是false,它也要去计算后面的值
短路或||,只要前面可以确定结果是true,那么后面就不管了
逻辑或|,就算前面可以确定结果是true,它也要去计算后面的值
设计个实验证明这个结论
*/
boolean c1 = 1>2&&2>(3/0);
//boolean c1 = 1>2&2>(3/0);
/*使用&时会报错,说3的除数不能为0,说明运算了后面的部分
而使用&&时不会报错
*/
System.out.println(c1);//false
}
}