一、在深入学习控制结构之前,需要了解块(block)的概念。
块(即复合语句)是指由一对大括号括起来的若干条简单的Java语句。块确定了变量的作用域。一个块可以嵌套在另一个块中,但是,不能在嵌套的两个快中声明同名的变量,否则程序无法通过编译。
1.1 if条件语句的三种格式:
[1]if( condition ) statement
if( )括号中默认的是布尔类型,如果条件为真,则执行后面的操作。
[2]if( condition ) statetion1 else statetion2
当条件为真的执行statetion1,否则执行statetion2
[3] if( condition1 ) statetion1 else if( condition 2 ) statetion2
当条件1为真时,执行statetion,否则,判断条件2,如果条件2为真,则执行statetion2,否则,执行其他。
如下是if语句的流程示意图:
通过代码展示效果如下:
static void learn() { //执行结果为1 if( true ) { System.out.println(1); }else if( true ) { System.out.println(2); }else { System.out.println(3); } } void learn1() { if( true ) { System.out.println(1);//打印1 if(false) { //不执行 }else { //执行空操作 } } if( true ) { System.out.println(2); //打印2 } else { System.out.println(3); } }
1.2while循环语句与do-while语句:
当条件为true时,while循环执行一条语句(也可以是一个语句块)。一般格式为:while( condition ) statetion,如果开始循环条件的值就为flase,则while循环体一次也不执行。while循环语句首先检测循环条件,因此,循环体中的代码有可能不被执行。如果希望将语句至少执行一遍,则应该把检测条件放在最后面,这就是do-while语句,它的格式如下:do statement while (condition );演示代码如下:
static void learn3() { byte num=0; while( true ) { num+=1; System.out.println("learn3:"+num);//无限循环-128~127 } // System.out.println("循环"); // int num2=10; // do { // System.out.println("成功");//成功 // }while(num2>20); }
1.3、下面是非常重要并且常使用的for循环
static void learn4() { String [] strs= {" 111","222 ","333 ","444 ","555"}; for(int j=0;j<10;j++) { System.out.println(j+" kaishi "); for(int i=0,len=strs.length;i<len;i++) { /* * 减小系统开销 该部分只执行一次,如果按照之前的写法,每次都会执行! 优化! 初始定义 ,条件判断 执行操作或限制条件(一系列) * 首先执行输出部分,然后执行i++; * */ System.out.println(strs[i]); } System.out.println(j+" jieshu "); } }
1.4 循环中break与continue的区别:
static void breakLearn() { for(int i = 0;i < 10;i++) { System.out.println("第"+i+"次======="); /* * break 中断 直接退出循环 * continue 中断之后的循环不执行 但是执行continue之前的循环体中的语句 * */ if(true) continue; System.out.println("第"+i+"次@@@@@@@@"); System.out.println("第"+i+"次###########"); }
输出结果: break:只输出第0次============== continue:输出第0~9次============
1.5多重选择:switch语句
在处理多个选项时,使用if/else结构时会显得有点笨拙,Java中使用switch语句。switch语句将从与选项之相匹配的case标签处开始执行知道遇到break语句,或者执行到switch语句结束为止。如果没有相匹配的case标签,而又default子句,执行该语句。具体代码实现如下:
static String learn5( int stu_Code) { String name=""; switch(stu_Code) { case 111: name = "我是1111"; break; case 222: name = "我是2222"; break; case 333: name = "我是333"; break; default: name = "未找到匹配项!"; break; } return name; }
二、Java中的大数值
Java.math包中有两个很有用的类:BigInteger和BigDecimal。这两个类可以处理任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点运算。使用静态的valueOf方法可以将和普通的数值和转换为大数值:BigInteger a = BigInteger.valueOf(100);
BigInteger big = BigInteger.valueOf(999l); BigInteger small = BigInteger.valueOf(1l); BigInteger number=big.add(small); System.out.println(number);
输出结果:1000