第二章(Ⅲ)选择与循环

关于流程图的一点补充:

java中bigdecimal的循环添加_代码块

一、选择结构
1、if语句
语法格式:
 if(判断条件){
 【代码块】;
 }三种使用形式:
 if(); // 省略了大括号和代码块if()
 ~~; // 省略了大括号if(){
 ~~;
 ~~;
 } // 普通格式【可读性和可维护性都比较好】2、if-else结构
语法格式:
if(判断条件){
 【代码块1】;
 }else{
 【代码块2】;
 }3、多重if-else结构
语法格式:
 if(判断条件){
 【代码块1】;
 }else if (判断条件){
 【代码块2】;
 }·······
 else if(判断条件){
 【代码块 n】;
 }else {
 【代码块n+1】;
 }
4、if-else条件语句的嵌套

举例:计算航空行李托运费

public class Shippingrates {
 public static void main(String[] args) {
 double weight,money;
 String strShow = "该乘客为:";
 Scanner input = new Scanner(System.in);
 System.out.println("请输入行李的重量(单位:kg):");
 weight = input.nextDouble();
 
 if(weight<40) {
  money = 0;
 }else {
  System.out.println("是国内乘客吗(1:是,其他值:不是)?");
  int iInner = input.nextInt();
  System.out.println("是头等舱吗(1:是,其他值:不是)?");
  int iHead = input.nextInt();
    System.out.println("是残疾人吗(1:是,其他值:不是)?");
 int iDefomity = input.nextInt();
 
  if(iInner==1) {
   strShow += "来自国内的一位乘坐";
   if(iHead==1) {
    strShow += "头等舱";
   if (iDefomity==1)
    strShow += "的残疾乘客";
   money = (weight - 40)*2.5;
  }else {
   strShow += "其它舱";
     if(iDefomity==1) {
   strShow += "的残疾乘客";
   money =(weight - 40)*3;
   }else {
    strShow += "的正常乘客";
    money =(weight - 40)*5;
 }
  }
   }else{
  strShow += "来自国外的一位乘坐";
  if(iHead==1) {
   strShow += "头等舱";
   if(iDefomity==1) {
    strShow += "的残疾乘客";
   money = (weight - 40)*6;
  }else {
   strShow += "的正常乘客";
   money = (weight - 40)*6;
  }
   }else {
  strShow += "其他舱";
  if(iDefomity==1) {
   strShow += "的残疾乘客";
  money = (weight - 40)*5;
 }else {
  strShow += "的正常乘客";
  money = (weight - 40)*10;
 }
 }
   }
     input.close();
  System.out.println(strShow);
  System.out.println("行李重:"+weight+"千克,所需要的运费为:"+money+"元。");
 }
 }
 }

小贴士:
若因代码太长而迷茫的话,可以在闭合花括号( } )的前面双击,则你会看到此花括号所包裹的代码块,有助于厘清头绪。(在eclipse中可进行此操作,其他我并没有尝试)

5、switch-case结构
语法格式:
 switch(表达式){
 case 常量表达式1:代码块1;
 break;
 case 常量表达式2:代码块2;
 break;``
case 常量表达式n:代码块n;
 break;
 default : 代码块n+1;
 break;
 }

注:case 后面的值只能是整型或字符型的常量或常量表达式
switch()中表达式的值的要求同case.

java 1.6(包括)以前,只是支持能转换成int类型的基本类型:byte ,short,char,int
1.7加入的新特性可以支持String类型的数据。(此有待考证)

二、循环结构
1、while 与 do while循环
语法格式:
 while(判断条件){
 【代码块】;
 }语法格式:
 do
 {
 【代码块】;
 }while(判断条件)两者最大的区别:do while 是先执行一次再判断是否继续往下执行;while是直接进行判断,符合执行,不符合就不执行。
2、for 循环
for(判断条件1;判断条件2;判断条件3)
 {
 【代码块】;
 }
3、break和continue

break是直接跳出循环,continue是跳出本次循环,去进行判断,继续执行下一次循环。