目录
顺序结构就是程序按照代码的书写顺序一步一步的执行。
- public static void main(String[] args) {
- int num = 10;
- char ch = 'a';
- double sum = 12.5;
- System.out.println(num);
- System.out.println(ch);
- System.out.println(sum);
- }
代码结果:
如果代码的顺序改变,输出的结果也改变了。
- public static void main(String[] args) {
- int num = 10;
- char ch = 'a';
- double sum = 12.5;
- System.out.println(num);
- System.out.println(sum);
- System.out.println(ch);
- }
代码结果:
语法格式1
if(布尔表达式){
// 语句
}
如果布尔表达式结果为true,执行if中的语句,否则不执行。
比如:如果你笔试过了60分,就奖励你一个 offer。
例1:
- public static void main(String[] args) {
- int score = 60;
- if (score >= 60) {
- System.out.println("奖励你一个offer");
- }
- }
代码结果:
语法格式2
if(布尔表达式){
// 语句1
}else{
// 语句2
}
如果布尔表达式结果为true,执行if中的语句,否则执行else中的语句。
比如:如果你笔试过了60分,就奖励你一个 offer;不过就给你一个大逼do。
例2:
- public static void main(String[] args) {
- int score = 59;
- if (score >= 60) {
- System.out.println("奖励你一个offer");
- }
- else {
- System.out.println("给你一个大逼do");
- }
- }
代码结果:
语法格式3
if(布尔表达式1){
// 语句1
}else if(布尔表达式2){
// 语句2
}else{
// 语句3
}
表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3。
比如:家人们比腿长。
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- System.out.print("请输入家人腿的长度");
- int people = input.nextInt();//输入
- if (people < 100) {
- System.out.println("小短腿");
- } else if (people > 100 && people <= 110) {
- System.out.println("短腿");
- } else if (people > 110 && people <= 120) {
- System.out.println("长腿");
- }else {
- System.out.println("大长腿");
- }
- }
代码结果:
代码风格:
- //风格1 ---> 推荐
- int n = 100;
- if (n > 10) {
- //语句1
- }else {
- //语句2
- }
-
- //风格2 ---> 不推荐
- int n = 100;
- if (n > 10)
- {
- //语句1
- }else
- {
- //语句2
- }
两种风格虽然都是合法的,但是风格1是Java语法风格,会显得代码更加紧凑。
- public static void main(String[] args) {
- int n = 10;
- if (n == 20);{
- System.out.println("hehe");
- }
- }
此处多写了一个 分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块
代码结果:
- int x = 10;
- int y = 10;
- if (x == 10)
- if (y == 10)
- System.out.println("aaa");
- else
- System.out.println("bbb");
if / else 语句中可以不加 大括号 ,但是也可以写语句(只能写一条语句)。 此时 else 是和最接近的 if 匹配。但是实际开发中我们 不建议 这么写。最好加上大括号。
基本语法
switch(表达式){
case 常量值1:
语句1;
break;
case 常量值2:
语句2;
break;
default:
内容都不满足时执行语句;
break;
}
执行流程
- public static void main(String[] args) {
- int day = 1;
- 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 7:
- System.out.println("星期日");
- break;
- default:
- System.out.println("输入有误");
- break;
- }
- }
代码结果:
【注意事项】
多个case后的常量值不可以重复
switch的括号内只能是以下类型的表达式:
基本语法格式
while(循环条件){
循环语句;
}
循环条件为 true, 则执行循环语句; 否则结束循环
代码示例1:打印十个整数1
- public static void main(String[] args) {
- int i = 10;
- while(i >= 0) {
- System.out.print(1+" ");
- i--;
- }
- }
代码结果:
代码示例2:打印1~100的和
- public static void main(String[] args) {
- int i = 1;
- int sum = 0;//累加的和
- while(i <= 100) {
- sum += i;
- i++;
- }
- System.out.println(sum);
- }
代码结果:
【 注意事项】
基本语法
for(表达式①;布尔表达式②;表达式③){
表达式④;
}
【执行过程】
①②③④--->②③④--->②③④--->②③④--->②③④--->②③④--->...--->②为false,循环结束。
代码示例1:打印1~10之间的偶数
- public static void main(String[] args) {
- int num = 10;
- for (int i = 0; i <= num ; i++) {
- if (i % 2 == 0) {
- System.out.println(i);
- }
- }
- }
代码结果:
代码示例2:计算1~100的和
- public static void main(String[] args) {
- int sum = 0;
- for (int i = 1; i <= 100; i++) {
- sum += i;
- }
- System.out.println(sum);
- }
代码结果:
【 注意事项】(和while循环类似)
基本语法
do{
循环语句;
}while(循环条件);
先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束
代码示例:打印1~10的数字
- public static void main(String[] args) {
- int i = 1;
- do {
- System.out.print(i + " ");
- i++;
- } while(i <= 10);
- }
代码结果:
【注意事项】
功能是让代码提前结束。
代码示例:打印1000~2000之间的第一个闰年
- public static void main(String[] args) {
- int year = 1000;
- while(year <= 2000) {
- if ((year % 4 != 0 && year % 100 == 0)|| year % 400 == 0 ) {
- System.out.println(year);
- break;
- }
- year++;
- }
- }
代码结果:
程序执行到break就会停止。
continue的作用是跳过本次循环,立即执行下一次循环。
代码示例:找到 100 - 200 中所有 3 的倍数
- public static void main(String[] args) {
- int num = 100;
- while (num <= 200) {
- if (num % 3 != 0) {
- num++; // 这里的 ++ 不要忘记! 否则会死循环.
- continue;
- }
- System.out.println("找到了 3 的倍数, 为:" + num);
- num++;
- }
- }
执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句。
- public static void main(String[] args) {
- System.out.println("abc");
- System.out.print("123");
- System.out.printf("%s","456");
- }
代码结果:
println 输出默认不换行,print 输出默认换行,printf 是指定格式的输出。
println 比较万能,所以用的最多的是println。
代码演示
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- System.out.println("请输入一个值:");
- int num = input.nextInt();
- System.out.println("数值是" + num);
- }
代码结果:
下面来实现循环输入年龄
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- while(input.hasNextInt()) {
- int age = input.nextInt();
- System.out.println("年龄:" + age);
- }
- }
代码结果:
程序会一直执行下去,如果想要结束,就点击Ctrl+d。
hasNextInt()表示循环输入的是整形,如果要输入其他类型的,这里就要有所改变。 hasNextLine()表示字符串类型、hasNextByte()表示字节类型、hasNextBoolean()表示布尔类型.