if语句
if
执行流程
首先判断关系表达式看其结果是true还是false
如果是true就执行语句体
如果是false就不执行语句体
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public static void main (String[] args) { System.out.println("开始" ); int a = 10 ; int b = 20 ; if (a == b){ System.out.println("a等于b" ); } int c = 10 ; if (a == c){ System.out.println("a等于c" ); } System.out.println("结束" ); }
if…else
1 2 3 4 5 if (关系表达式) { 语句体1 ; }else { 语句体2 ; }
1 2 3 4 5 6 7 8 9 10 11 public static void main (String[] args) { int a = 1 ; if (a % 2 == 0 ) { System.out.println("a是偶数" ); } else { System.out.println("a是奇数" ); } System.out.println("结束" ); }
if…else if…else
if语句第三种格式: if…else if …else
1 2 3 4 5 6 7 8 9 10 11 if (判断条件1 ) { 执行语句1 ; } else if (判断条件2 ) { 执行语句2 ; } ... }else if (判断条件n) { 执行语句n; } else { 执行语句n+1 ; }
执行流程
首先判断关系表达式1看其结果是true还是false
如果是true就执行语句体1
如果是false就继续判断关系表达式2看其结果是true还是false
如果是true就执行语句体2
如果是false就继续判断关系表达式…看其结果是true还是false
…
如果没有任何关系表达式为true,就执行语句体n+1。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public static void main (String[] args) { int x = 5 ; int y; if (x>= 3 ) { y = 2 * x + 1 ; } else if (x >= ‐1 && x < 3 ) { y = 2 * x; } else { y = 2 * x ‐ 1 ; } System.out.println("y的值是:" +y); }
语句练习
指定考试成绩,判断学生等级
90-100 优秀
80-89 好
70-79 良
60-69 及格
60以下 不及格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public static void main (String[] args) { int score = 100 ; if (score<0 || score>100 ){ System.out.println("你的成绩是错误的" ); }else if (score>=90 && score<=100 ){ System.out.println("你的成绩属于优秀" ); }else if (score>=80 && score<90 ){ System.out.println("你的成绩属于好" ); }else if (score>=70 && score<80 ){ System.out.println("你的成绩属于良" ); }else if (score>=60 && score<70 ){ System.out.println("你的成绩属于及格" ); }else { System.out.println("你的成绩属于不及格" ); } }
if语句和三元运算符的互换
在某些简单的应用中,if语句是可以和三元运算符互换使用的。
1 2 3 4 5 6 7 8 9 10 11 12 13 public static void main (String[] args) { int a = 10 ; int b = 20 ; int c; if (a > b) { c = a; } else { c = b; } c = a > b ? a:b; }
案例
判断三角形为什么三角形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import java.util.Scanner;public class triangle { public static void main (String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一条边长" ); int a = sc.nextInt(); System.out.println("请输入第二条边长" ); int b = sc.nextInt(); System.out.println("请输入第三条边长" ); int c = sc.nextInt(); if (a>0 &&b>0 &&c>0 ){ if ((a+b)>c&&(a+c)>b&&(c+b)>a){ if (a == b & b== c & a==c){ System.out.println("是等边三角形" ); }else if (a == b | b == c | b == c){ System.out.println("是等腰三角形" ); }else { System.out.println("是三角形" ); } }else { System.out.println("不是三角形" ); } }else { System.out.println("边长不能小于零" ); } } }
解ax^2+bx+c=0的根
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 import java.util.Scanner;public class Demo { public static void main (String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入a" ); float a = sc.nextFloat(); System.out.println("请输入b" ); float b = sc.nextFloat(); System.out.println("请输入c" ); float c = sc.nextFloat(); float derta = b * b - 4 * a * c; float kg = (float ) Math.sqrt(derta); if (200 >= a && a >= -200 && 200 >= b && b >= -200 && 200 >= c && c >= -200 ) { if (derta < 0 ) { System.out.println("方程组无实数根" ); } else if (derta == 0 ) { System.out.println("方程组有两个相同等的实数根为,X=" + (-b / (2 * a))); } else if (derta > 0 ) { System.out.println("方程组有两个不相等的根,X1=" + ((-b + kg) / (2 * a)) + ",X2=" + ((-b - kg) / (2 * a))); } } else { System.out.println("输入有误" ); } } }
switch语句
语句格式
1 2 3 4 5 6 7 8 9 10 11 12 13 switch (表达式){ case 值1 : 语句体1 ; break ; case 值2 : 语句体2 ; break ; ...... case 值n: 语句体n; break ; }
格式说明
case:后面跟的是要和表达式进行比较的值
break:表示中断结束的意思,用来结束switch语句
default:表示所有情况都不匹配的时候就执行该处的内容
执行流程
首先计算表达式的值
依次和case后面的值进行比较如果有对应的值就会执行相应的语句在执行的过程中遇到break就会结束
如果所有的case后面的值和表达式都不匹配就会执行default里面的语句体然后程序结束
案例
输出对应的星期数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 import java.util.Scanner;public class switchtest { public static void main (String[] args) { System.out.println("开始" ); Scanner sc = new Scanner(System.in); System.out.println("请输入一个星期数(1-7)" ); int week = sc.nextInt(); switch (week){ 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 ; } System.out.println("结束" ); } }
case穿透
case1:
case2:
case3:
语句体;
break;
输出对应的季节
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 import java.util.Scanner;public class switchtest { public static void main (String[] args) { System.out.println("开始" ); Scanner sc = new Scanner(System.in); System.out.println("请输入一个月数(1-12)" ); int mouth = sc.nextInt(); switch (mouth){ case 2 : case 3 : case 4 : System.out.println("春季" ); break ; case 5 : case 6 : case 7 : System.out.println("夏季" ); break ; case 8 : case 9 : case 10 : System.out.println("秋季" ); break ; case 11 : case 12 : case 1 : System.out.println("冬季" ); break ; default : System.out.println("输入的月份有误" ); break ; } System.out.println("结束" ); }