if判断:
格式:
if (判断条件){
代码1
}
else if (判断条件){
代码2
}
else{
代码3
}
if只有一个,else if可以有多个,else有一个或没有。
当满足if或else if后面的判断条件时,执行相对应的代码;但是只会执行一个if或else if,其它不执行。
如果都不满足将执行else。
public static void main(String[] arg) { /* * 运输公司对用户计算运费.路程越远每公里运费越低. 每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d, * 则总运费f的计算公式为f=p*w*s*(1-d) ; * 输入基本运费,货重和距离,算出运费 * s<250km 没有折扣 * 250<= s <500 2%折扣 * 500<= s <3000 8%折扣 * 3000<= s 15%折扣 */ int w = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入您要运送货物的重量(吨)")); int s = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入您要运送的距离(公里)")); int p = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入每公里每吨运费(元)")); double d = 0; if (s < 250) { d = 0; } else if (s >= 250 && s < 500) { d = 0.02; } else if (s >= 500 && s < 3000) { d = 0.08; } else { d = 0.15; } double f = s * w * p * (1 - d); JOptionPane.showMessageDialog(null, "您的总运费为:" + f + "元"); }
switch选择:
格式:
switch (变量或表达式){
case 值1:
代码1;
break;
case 值2:
代码2;
break;
default:
代码3;
break;
}
先计算switch后面表达式的值或变量的值,依次与case后面的值进行比较,
如相同则运行该case下面的代码当遇到第一个break时结束判断;如都不匹配则运行default下的代码。
1 public static void main(String[] arg) { 2 // 分别输入年、月、日,计算这个年月日是一年中的第几天。 3 int year = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入年份")); 4 int month = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入月份")); 5 int day = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入日")); 6 int n = 0; 7 if (year > 0 && day > 0 && day <= 31) { 8 switch (month) { 9 case 12: 10 n += 30; 11 case 11: 12 n += 31; 13 case 10: 14 n += 30; 15 case 9: 16 n += 31; 17 case 8: 18 n += 31; 19 case 7: 20 n += 30; 21 case 6: 22 n += 31; 23 case 5: 24 n += 30; 25 case 4: 26 n += 31; 27 case 3: 28 if (year % 4 == 0) { 29 n += 29; 30 } else { 31 n += 28; 32 } 33 case 2: 34 n += 31; 35 case 1: 36 n += day; 37 JOptionPane.showMessageDialog(null, year + "年第" + n + "天"); 38 break; 39 default: 40 JOptionPane.showMessageDialog(null, "输入错误"); 41 break; 42 } 43 } else { 44 JOptionPane.showMessageDialog(null, "输入错误"); 45 } 46 }
while循环:
格式:
while (循环条件){
循环体
}
循环条件:必须是boolean类型
循环体:任意代码
while循环是先判断条件,如果为真则执行循环体;如果为假则退出循环。
while循环可能执行1次,也可能执行多次,也可能不执行。适合循环次数未知的循环。
1 public static void main(String[] args) { 2 // ATM 3 int money = 8000; 4 while (true) { 5 String s = JOptionPane.showInputDialog(null, "1、存款" + " 2、取款" + " 3、查询余额" + " 4、退卡"); 6 if (s.equals("1")) { 7 String m = JOptionPane.showInputDialog(null, "请输入存款金额"); 8 money += Integer.parseInt(m); 9 JOptionPane.showMessageDialog(null, "当前余额:" + money); 10 } else if (s.equals("2")) { 11 String m = JOptionPane.showInputDialog(null, "请输入取款金额"); 12 int getMoney = Integer.parseInt(m); 13 if (getMoney > money) { 14 JOptionPane.showMessageDialog(null, "余额不足"); 15 } else { 16 money -= getMoney; 17 JOptionPane.showMessageDialog(null, "当前余额:" + money); 18 } 19 } else if (s.equals("3")) { 20 JOptionPane.showMessageDialog(null, "当前余额:" + money); 21 } else { 22 JOptionPane.showMessageDialog(null, "请收好你的卡片"); 23 break; 24 } 25 } 26 }
do while循环:
格式:
do {
循环体
} while (循环条件);
循环条件:必须是boolean类型
循环体:任意代码
do while 循环是先执行一次循环体,再判断循环条件。
do while至少执行一次。适合循环次数未知的循环。
1 public static void main(String[] args) { 2 /* 3 * 任意输入一个数,打印它的每一位。 比如:输入785 输出: 5 8 7 4 */ 5 int x = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入一个数")); 6 7 do { 8 System.out.println(x % 10); 9 x = x / 10; 10 } while (x != 0); 11 12 }
for循环:
格式:
for (表达式1;循环条件;表达式2){
循环体
}
循环条件:必须是boolean类型
循环体:任意代码
for循环先执行表达式1,再判断循环条件,如果满足则执行循环体,然后执行表达式2;
继续判断循环条件如满足再次执行循环体,再执行表达式2;如不满足判断条件则退出循环。
for循环适合用于循环次数已知的循环。
while循环和for循环可以互相转换。
1 public static void main(String[] args){ 2 //打印1 1 2 3 5 8 13 21(斐波拉数列) 3 int a=1; 4 int b=1; 5 for (int i = 0; i < 4; i++) { 6 System.out.print(a+" "+b+" "); 7 a=a+b; 8 b=a+b; 9 } 10 }