java SE复习第二天
- 每天复习半小时,相信日积月累的力量
- 声明:本类型文章用于快速复习,不适合初学者观看,请见谅,如有问题请在评论区指出。
1.判断语句
1.1 判断语句if
public static void main(String[] args) {
String a = "男";
if (a.equals("男")){
System.out.println("我是男生");
}
}
- 说明:equals用于判断字符内容,==判断的是内存地址,刚学习的小伙伴请注意一下。
1.2 判断语句 if…else
public static void main(String[] args) {
String a = "女";
if (a.equals("男")){
System.out.println("我是男生");
}else {
System.out.println("我是女生");
}
}
1.3 判断语句 if…else嵌套
public static void main(String[] args) {
int x = 5;
int y ;
if (x>3){
y = x *3;
}else if (x<3){
y = x + 3;
}else {
y = x - 3;
}
}
1.4 if语句和三元运算符互换
public static void main(String[] args) {
int x = 1;
if (x == 1){
System.out.println("我是男生");
}else {
System.out.println("我是女生");
}
System.out.println(x == 1 ? "我是男生" : "我是女生");
}
2.选择语句
2.1 选择语句–switch
public static void main(String[] args){
int day = 6;
switch (day){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 0:
System.out.println("星期日");
break;
default:
System.out.println("输入有误");
}
}
2.2 case的穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束。
3.循环语句
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。
3.1 循环语句 for
- 格式:
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}
- 执行流程
- 执行顺序:①②③④>②③④>②③④…②不满足为止。
- ①负责完成循环变量初始化
- ②负责判断是否满足循环条件,不满足则跳出循环
- ③具体执行的语句
- ④循环后,循环条件所涉及变量的变化情况
分别输出5次 helloWorld 进行对比,发现代码量减少许多,并且程序的可读性大大提高,减少代码冗余
public static void main(String[] args) {
System.out.println("helloWorld");
System.out.println("helloWorld");
System.out.println("helloWorld");
System.out.println("helloWorld");
System.out.println("helloWorld");
System.out.println("--------------------");
for(int i=0;i<5;i++){
System.out.println("helloWorld");
}
}
循环练习:使用循环,计算1-100之间的偶数和
public static void main(String[] args) {
int sum = 0;//统计和
for (int i = 1;i<=100;i++){
if (i%2==0){
sum+=i;
//System.out.print(i + " ");//验证输出的是否是偶数
}
}
System.out.println(sum);
}
3.2 for循环练习题
- 判断101-200之间有多少个素数,并输出所有素数。(素数:只能被1或自身整除)
public static void main(String[] args) {
int sum = 0;//统计素数个数
for (int i=101;i<=200;i++){
boolean flag = true;//默认为真
for (int j=2;j<i;j++){
if (i%j==0){
flag = false;//如果为假则说明当前i不为素数
}
}
if (flag){
System.out.print(i+" ");
sum++;
}
}
System.out.println();
System.out.println("素数的个数为: "+sum);
}
- 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
public static void main(String[] args) {
for (int i = 100; i < 999; i++) {
int a = i/100;//百位
int b = (i - a*100)/10;//十位
int c = i%10;//百位
if ( i == a*a*a + b*b*b + c*c*c){
System.out.println(i);
}
}
}
注:答案不唯一,仅提供一种解决思路。
3.3 循环语句 while
格式:
初始化表达式①
while(布尔表达式②){
循环体③ 步进表达式④
}
- 执行流程
- 执行顺序:①②③④>②③④>②③④…②不满足为止。
- ①负责完成循环变量初始化。
- ②负责判断是否满足循环条件,不满足则跳出循环。
- ③具体执行的语句。
- ④循环后,循环变量的变化情况。
while循环输出10次HelloWorld
public static void main(String[] args) {
int i = 0;
while (i<10){
System.out.println("HelloWorld "+i);
i++;
}
}
while循环计算1-100之间的和
public static void main(String[] args) {
int sum = 0;//统计和
int i = 1;//循环次数
while (i<=100){
sum+=i;
i++;
}
System.out.println(sum);
}
3.4 do…while
格式:
初始化表达式①
do{
循环体③
步进表达式④
}while(布尔表达式②);
特点: do…while循环的特点:无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的 循环具有一定的风险性,因此初学者不建议使用do…while循环。
例:输出10次HelloWorld
public static void main(String[] args) {
int i = 0;
do{
System.out.println("HelloWorld " + i);
i++;
}while (i<10);
}
3.5 循环语句的区别
for
和while
的小区别:
控制条件语句所控制的变量,也就是在for循环条件声明的变量,在for循环结束后,就不能再被访问到了。而while循环结束还可以继续使用,如果想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。 在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。
3.6 跳出语句
break:终止switch或者循环
continue:结束本次循环,继续下一次的循环
4.循环扩展
4.1死循环
也就是循环中的条件永远为true,死循环的是永不结束的循环。例如:while(true){}。
4.2 嵌套循环
习题练习:打印三角形等……