3、引用型別、選擇與迴圈
1、引用型別
☆格式:先使用import匯入必須的包(如果需要);次之定義變數並建立物件賦值:資料型別 變數名 = new 資料型別();最後呼叫該例項方法:變數名.方法名();
☆鍵盤錄入類:Scanner
主要方法有:next()、nextInt()、nextDouble()、nextLine()(此方法可以解析空格、換行等操作)
import java.util.Scanner;//1.導包
public class MyScanner{
public static void main(String[] args){
Scanner sc = new Scanner (System.in);//2.建立Scanner物件並變數賦值
int i = sc.nextInt();//3.通過變數名.方法()使用Scanner類中的方法,返回其值並賦值給i
System.out.println("i = " + i);
String s = sc.next();//獲取鍵盤輸入的字串
System.out.println("s = " + s);
}
}
☆隨機數類:Random
主要方法:nextInt(int maxValue) 產生[0,maxValue)範圍的隨機整數;nextDouble() 等等
import java.util.Random;
public class MyRandom{
public static void main(String[] args){
Random r = new Random();
int i = r.nextInt(5)+1;//產生一個1-5之間的隨機數
System.out.println("i = " + i);
double d = r.nextDouble();//產生一個隨機小數,範圍[0,1)
System.out.println("d = " + d);
}
}
2、選擇結構
選擇語句:if和switch語句
☆if語句
單條件判斷格式:
public class MyIf1 {
public static void main(String[] args){
int a=2;
if(a>3){
System.out.println("此去路遙久相隔");
}
if(a<=2){
System.out.println("不知相逢何年月");
}
}
}
互斥條件判斷格式:
public class MyIf2{
public static void main(String[] args){
int a=2;
if(a>3){
System.out.println("此去路遙久相隔");
}else{
System.out.println("不知相逢何年月");
}
}
}
多條件判斷格式:
public class MyIf3{
public static void main(String[] args){
int a=2;
if(a>3){
System.out.println("此去路遙久相隔");
}else if{
System.out.println("不知相逢何年月");
}else{
System.out.println("年少風流付與君");
}
}
}
多層條件判斷:
public class MyIf4{
public static void main(String[] args){
int a=80;
if(a>=60&&a<=100){
if(a>=80){
System.out.println("高手");
}else{System.out.println("不過如此");
}
}else{System.out.println("異類");
}
}
}
☆switch語句
public class MySwitch{
public static void main(String[] args){
int a=2;
switch(a){
case 1:
System.out.println("這是1");
break;
case 2:
System.out.println("這是2");
break;
default:
System.out.println("這是幾");
break
}
}
}
注意:表示式的取值只能是:byte,short,int,char;JDK5以後可以是列舉;JDK7以後可以是String。如同if語句當中的else,default不是必須存在的,default語句表示所有情況都不匹配的時候,就執行該處的內容。與if語句不同,switch語句只能完成具體值的選擇,而不能指定取值區間。break表示中斷,結束的意思,可以結束switch語句。
2、迴圈結構
☆for迴圈
格式:
for(初始化表示式①;布林表示式②;步進表示式④){迴圈體③}
執行順序:
①②③④>②③④>②③④… ②不滿足為止。
public class MyFor{
public static void main(String[] args ){
for(int x=0; x<10; x++){
System.out.println("我愛java!"+(x+1));
}
}
}
注意:①②③④四個部分均可以為空:當①為空時,注意變數作用域的範圍變化;當②為空時,為條件永遠為true的死迴圈;當③為空時,通常沒有意義;當④為空時,可以將其加入到迴圈體中,或同樣成為死迴圈。初始化表示式①的部分可以同時定義多個變數,步進表示式可以同時將多個迴圈相關變數改變,控制迴圈條件。
☆while迴圈語句
格式:
初始化表示式①
while(布林表示式②){
迴圈體③
步進表示式④ }
執行順序:①②③④>②③④>②③④… ②不滿足為止。
public class MyWhile{
public static void main(String[] args ){
int a=0;
while(a<=10){
System.out.println("我愛java!"+a);
a++;
}
}
}
注意:與for迴圈的迴圈變數作用域不同,for迴圈的迴圈變數其作用域僅限於迴圈體內,而while迴圈的迴圈變數作用域不侷限在迴圈體內。與for迴圈的迴圈條件為空是是死迴圈不同,while迴圈的迴圈條件不能為空。我們經常會使用while(true)的方式根據需求完成一個死迴圈。
☆do while迴圈語句
格式:
初始化表示式①
do{
迴圈體③
步進表示式④
}while(布林表示式②);
執行流程:①③④>②③④>②③④… ②不滿足為止。
public class MyDoWhile{
public static void main(String[] args) {
int a=0;
do{
System.out.println("我愛java!"+a);
a++;
}while(a<=10)
}
}
☆迴圈巢狀
public class Demo{
public static void main(String[] args){
for(int i=0; i<3; i++){//外層迴圈
for(int j=0; j<5; j++){//內層迴圈
System.out.println("外"+(i+1)+",內"+(j+1));
}
}
}
}
☆無條件分支跳轉之break關鍵字
使用方式:無法單獨使用,必須將break關鍵字置於switch或迴圈語句中。
執行行為:不需要判斷任何條件,只要遇到break便直接跳出執行後續程式碼。會完全跳出選擇或者迴圈結構。break只能跳出最近的程式碼塊,不能跨越多級程式碼塊。
public class Break{
public static void main(String[] args){
for(int i=0;i<10;i++){
if(i==5) { break;}
System.out.println(“我愛Java”+i);//輸出五次
}
}
}
☆無條件分支跳轉之continue關鍵字
使用方式:無法單獨使用,必須將continue關鍵字置於迴圈語句中。
執行行為: 不需要判斷任何條件,只要遇到continue變直接跳出本輪迴圈進行下次迴圈。
public class Continue{
public static void main(String[] args){
for(int i=0; i<10; i++) {
if(i==5) {
continue;}
System.out.println(“我愛Java”+i);//只有第五次不會輸出
}
}
}
☆無條件分支跳轉之標號語句(標籤)跳轉
當在雙層迴圈或者迴圈內有switch選擇語句時,我們發現,使用break或者continue所作用的物件均是內層語句,無法直接跳出外層迴圈,這時就需要使用標號語句跳轉了。
使用方式:在外層迴圈外的某行前邊,使用後邊跟有冒號”:”的識別符號,即定義完畢。使用時當在內層迴圈使用break或continue時後邊緊跟之前定義的標號即可。
執行行為:當外層迴圈外定義了標號時,內層使用break,終止內外雙層迴圈。內層使用continue,終止內層迴圈,繼續外層迴圈。
public class ExampleContinue{
public static void main(String[] args){
mark:for(int i=0; i<3; i++){
for(int j=0; j<5; j++){
if(i==1){
continue mark;
}
System.out.println("外"+(i+1)+",內"+(j+1));//外2不會執行
}
}
}