前两天比较基础,就不补了,从day03开始打卡
1.
if-else if-else:
/*
if,if-elif-else控制语句的结构:
if(条件){
执行语句
}else if(条件){
执行语句}else{
执行语句}
*/
import java.util.Scanner;
public class IF {
public static void main(String[] args){
test();
}
public static void test(){
Scanner sc = new Scanner(System.in);
System.out.println("Enter a number: ");
int height = sc.nextInt();
if(height <= 160){
System.out.println("你真矮");
}else if (height > 160 & height <= 170){
System.out.println("你一般矮");
}else{
System.out.println("你有点高");
}
}
}
tips:注意else if 和 else必须紧跟着上一个花括号后面,这是龟腚。
2.Switch
switch更适合单个值的比较,if适合范围。
在执行过程中,先计算出表达式的值,再拿去和case中的值比较,比较为真,则执行那个case下的语句。
注意,必须加break,否则执行完那个case的语句后,还会向后执行,称为穿透现象。
/*
switch 语句结构:
switch(表达式){
case值1:
执行语句;
break;
case值2:
执行语句;
break;
default:
执行语句;
}
default相当于是除了case1和case2的其他值,default这儿不用break了,因为以经到底了
*/
import java.util.Scanner;
public class Switch {
public static void main(String[] args) {
test();//需求,根据性别不同,推荐不同的电视剧
}
public static void test() {
Scanner sc = new Scanner(System.in);
System.out.println("输入你的性别");
String gender = sc.next();
switch (gender)
{
case "男" :
System.out.println("亮剑");
break;
case "女" :
System.out.println("致命女人");
break;
default:
System.out.println("请正确输入你的性别");
}
}
}
当然,穿透现象不一定是坏处,它有时可以简化代码量。没有break的地方,就会一直往下寻找执行语句。
eg:需求:周一到周五:输出“好好读书”,周六周日,输出“无畏契约”。代码如下。
由于周一到周五的case没有break,而我故意不在周一到周五写执行语句,所以会一直向下寻找执行语句,直到周五,输出”好好读书“。正因为周一到周五输出的内容都是一样的,因此利用穿透现象,可以只写一行好好读书。
public static void show() {
Scanner sc = new Scanner(System.in);
System.out.println("输入今天是星期几");
String day = sc.next();
switch (day){
case "星期一" :
case "星期二" :
case "星期三" :
case "星期四" :
case "星期五" :
System.out.println("好好读书");
break;
default:
System.out.println("无畏契约");
}
}
3.for循环
for(初始化语句;循环条件;迭代语句){
重复执行的代码
}
eg:
public class For {
public static void main(String[] args) {
test(10);
}
public static void test(int a) {
for (int i = 0; i < a; i += 2){
System.out.println(i);
}
}
}
感觉比python的range(a,b,k)好用,i+=2相当于控制步长为2,打印10以内的偶数。
而且可以很好的控制区间的开闭,i < a,就是python的写法,左闭右开;i <= a,就是左闭右闭。
4.while 循环
/*
while 循环的结构
while(循环条件){
循环体语句(被重复执行的代码);
迭代语句
}
*/
public class While {
public static void main(String[] args) {
test();// 5 4 3 2 1 0
}
public static void test() {
int i = 5;
while(i >=0){
System.out.println(i);
i --;
}
}
}
tips:跟for循环不同,while循环里的 i 必须在while外部定义好了,再拿来循环(全局变量 i)。
而for循环里的 i 是在for 循环里定义,并且作用域仅在 for 循环里。
5.do-while
可以理解为while循环的变体,他是一上来就执行循环体语句和迭代语句一遍,再去判断是否满足while的循环条件、、
/*
do-while 结构:
初始化语句
do{
循环体语句;
迭代语句;
}while(循环条件);
*/
public class DoWhile {
public static void main(String[] args) {
test();//5
}
public static void test() {
int i = 5;
do{
System.out.println(i);
i --;
}while(false);
}
}
tips:
while false如果在最前面,是根本不会往下执行的。但是用了do结构, 先print出来,再进入while判断条件,发现为false,然后结束。