java中的常用語句
java程式的流程控制語句
1.順序結構
java程式從上到下一行一行地執行,中間沒有判斷和跳轉,直到程式結束。2.選擇結構
根據判斷條件的結構,選擇性的執行。
2.1 if語句
格式1:if(判斷條件){ java程式碼 }如果判斷條件為true時執行java程式碼;如果判斷條件為false時不執行java程式碼。
格式2:if(判斷){
java程式碼1
}else{
java程式碼2
} 如果判斷條件為true時執行java程式碼1;如果判斷條件為false時執行java程式碼2。 此格式可以使用三元表示式代替:(判斷條件)? 數值1:數值2
例如: public class IfDemo{
public static void main(String args[]){
/*
int a=30;
int b=20;
if(a<b){
System.out.println("a小於b");
}
System.out.println("執行結束!");
*/
/*
int a=30;
int b=20;
if(a<b){
System.out.println("a小於b");
}else{
System.out.println("a大於b");
}
System.out.println("執行結束!");
*/
// 三元運算子: (判斷)? 數值1:數值2 ---if-else語句
/*
int a=30;
int b=20;
System.out.println((a<b)?"a小於b":"a大於b");
System.out.println("執行結束!");
*/
}
}
格式3:if(判斷1){
java程式碼1
}else if(判斷2){
java程式碼2
}else if(判斷3){
java程式碼3
}
.....
else if(判斷n){
java程式碼n
}else{
java程式碼m
}
判斷1為true時執行java程式碼1,結束;
判斷1為false時執行判斷2;
判斷2為true時執行java程式碼2,結束;
判斷2為false時執行判斷3;
.......
如果所有的判斷都是false,那麼就會值最後一個else中的java程式碼m。
例如:
import java.util.Scanner;
public class IfDemo1{
//建立Scanner類的物件
Scanner input=new Scanner(System.in);
//提示使用者
System.out.println("請輸入成績值:");
//接收成績值
int chengji=input.nextInt();
if((chengji>=60 && chengji < 70)){
System.out.println("成績:及格");
}else if((chengji>=70 && chengji<=80)){
System.out.println("成績:良好");
}else if((chengji>80 && chengji<=90)){
System.out.println("成績:優秀");
}else if((chengji>90 && chengji<=100)){
System.out.println("成績:異常優秀");
}else{
System.out.println("成績:不及格");
}
}
}
格式4:if(判斷1){
if(判斷2){
java程式碼1
}else{
java程式碼2
}
}ese{
if((判斷3){
java程式碼3
}else{
java程式碼4
}
}
以上格式是一個if...else...結構的巢狀。
例如:
import java.util.Scanner;
public class IfDemo2{
public static void main(String args[]){
//建立Scanner類的物件
Scanner input=new Scanner(System.in);
//提示使用者
System.out.println("請輸入年齡:");
//接收成績值
int age=input.nextInt();
if(age>20){
if(age<45){
System.out.println("年齡可用");
}else{
System.out.println("年齡過大");
}
}else{
if(age>0){
System.out.println("年齡過小");
}else{
System.out.println("輸入錯誤");
}
}
}
}
2.2 switch語句
switch語句可以代替if(){}else if(){}結構
格式:switch(表示式){
case 常量值1:java語句1;[break;]
case 常量值2:java語句2;[break;]
.......
case 常量值n:java語句n;[break;]
[default: java語句m;[break;]]
}
先計算表示式的結果,如果表示式的結果與 case後面的常量值比較,
如果相同,執行該case後面對應的java語句,對應的java語句執行以後,檢查是否還有[break;]
若果有[break;]語句跳出 switch語句。
若果沒有[break;],執行下一個case對應的java語句,直到出現[break;]或者執行完畢。
如果不相同,與下一個case後面的常量值比較,
...
若果與case後面的常量值比較都不同那麼就執行default後面的java語句.
注意:表示式的運算結果可以是byte short char int 列舉 String[jdk7.0]
例如:選擇題的判斷結構
import java.util.Scanner;
public class SwitchDemo{
public static void main(String args[]){
System.out.println("題目:doouble dou=12.5; int i=(int)dou;");
System.out.println("A、10 B、11 C、12 D、11.5");
System.out.println("請選擇正確答案:");
Scanner input=new Scanner(System.in);
String answer=input.next();
/*
switch(answer){
case "A":System.out.println("答案A為10");break;
case "B":System.out.println("答案B為11");break;
case "C":System.out.println("答案C為12");break;
case "D":System.out.println("答案D為11.5");break;
default:System.out.println("沒有改選項!"); break;
}
*/
//charAt(0);把字串中的第一個位置上的資料轉換成字元型【char】
char newanswer=answer.charAt(0);
switch(newanswer){
case 'A':System.out.println("答案A為10");break;
case 'B':System.out.println("答案B為11");break;
case 'C':System.out.println("答案C為12");break;
case 'D':System.out.println("答案D為11.5");break;
default:System.out.println("沒有改選項!"); break;
}
}
}
3.迴圈結構
按照一定條件,將程式迴圈執行。
1.for迴圈
格式:for(初始條件 ; 判斷條件 ;迴圈增量/減量){
需要被迴圈執行的java程式碼
}
例如:
public class ForDemo{
public static void main(String args[]){
//迴圈輸出1--10的整數
/*
for(int i=1;i<=10;i++){
System.out.println("i=="+i);
}
*/
//迴圈輸出10--1的整數
/*
for(int i=10;i>0;i--){
System.out.println("i=="+i);
}
*/
//計算1--10的整數和
int sum=0;
for(int i=1;i<=10;i++){
sum=sum+i;
}
System.out.println("sum=="+sum);
}
}
2.while迴圈
格式:while(判斷條件){
需要被迴圈執行的java程式碼
}
初始條件被定義在迴圈結構之外。
迴圈增量/減量書寫在迴圈體的結尾。
例如:
public class WhileDemo{
public static void main(String args[]){
//迴圈輸出1--10的整數
/*
int i=1;
while(i<=10){
System.out.println("i=="+i);
i++;
}
*/
//迴圈輸出10--1的整數
/*
int i=10;
while(i>=1){
System.out.println("i=="+i);
i--;
}
*/
//計算1--10的整數和
int i=1;
int sum=0;
while(i<=10){
sum=sum+i;
i++;
}
System.out.println("sum=="+sum);
}
}
3.do...while迴圈
格式:do{需要被迴圈執行的java程式碼
}while(判斷條件);
初始條件被定義在迴圈結構之外。
迴圈增量/減量書寫在迴圈體的結尾。
public class DoWhileDemo{
public static void main(String args[]){
//迴圈輸出1--10的整數
/*
int i=1;
do{
System.out.println("i=="+i);
i++;
}while(i<=10);
*/
//迴圈輸出10--1的整數
/*
int i=10;
do{
System.out.println("i=="+i);
i--;
}while(i>=1);
*/
//計算1--10的整數和
int i=1;
int sum=0;
do{
sum=sum+i;
i++;
}while(i<=10);
System.out.println("sum=="+sum);
}
}
總結:1、for迴圈 與 while迴圈和do...while迴圈的比較
for迴圈---要清楚自己的迴圈次數。
while迴圈和do...while迴圈---不需要清楚自己的迴圈次數
2、while迴圈與do...while迴圈的比較
while迴圈--先判斷後執行
do...while迴圈--先執行後判斷
同等條件下do...while迴圈比while迴圈多執行一次。
猜數字:
1.沒有限制條件的猜數字,直至猜對
import java.util.Scanner;
public class CaiShuZi{
public static void main(String args[]){
//定義一個boolean值
boolean flag=true;
//得到一個隨機數
//隨機產生一個0--1之間的數字
double num1=Math.random();
//轉換成0--100之間的小數
num1=num1*100;
int num2=(int)num1;
System.out.println("num2:"+num2);
//建立Scanner物件
Scanner input=new Scanner(System.in);
while(flag){
System.out.println("請輸入一個0--100之間的整數:");
int mynum=input.nextInt();
if(mynum>num2){
System.out.println("太大了,換個小一點的,來試試!");
}
if(mynum<num2){
System.out.println("太小了,換個大一點的,來試試!");
}
if(mynum==num2){
System.out.println("恭喜你猜對了,遊戲結束!");
flag=false;
}
}
}
}
大家可以將上面的例項修改成,有限制條件的猜數字程式。試試吧!
4.break語句
break語句出現表示終止或者中斷程式的執行。break語句可以在在switch語句和迴圈語句中出現;出現在switch語句中表示,跳出switch語句的執行;出現在迴圈語句中,中斷迴圈的執行。
例如:
public class BreakDemo{
public static void main(String args[]){
//迴圈輸出1--10的整數,當數字等於5的時候,中斷輸出
for(int i=1;i<=10; i++){
System.out.println("i=="+i);
if(i==5){
break;
}
}
}
}
當迴圈是一種巢狀結構的時候,使用break表示跳出當前迴圈。
for(int i=1;i<=10;i++){
System.out.println("外層迴圈語句中i==="+i);
for(int j=1;j<=10;j++){
System.out.println("內層迴圈語句中j==="+j);
if(j==5){
break;
}
}
if(i==5){
break;
}
}
5.continue語句
continue語句繼續【結束本次迴圈,進入下次迴圈】例如:
public class ContinueDemo{
public static void main(String args[]){
//continue表示結束本次迴圈進入下次迴圈
int i=1;
while(i<=10){
i++;
if(i==5){
continue;
}
System.out.println("i==="+i);
}
}
}
6.增強的for迴圈語句--JDK1.5對for語句進行了改進。
普通的for迴圈for(初始條件;判斷條件;迴圈增量/減量){
被執行的java程式碼
}
遍歷陣列---包陣列中儲存的資料逐個獲取出來。
例如:
public class GetArrayValue{
public static void main(String args[]){
//定義一個char陣列
char ch_name[]={'h','e','l','l','o'};
//通過普通的for迴圈遍歷陣列
for(int i=0;i<ch_name.length;i++){
System.out.println("陣列值="+ch_name[i]);
}
}
}
增強的for迴圈語句--遍歷陣列
格式:
for(陣列的資料型別 變數名稱:陣列名稱){
}
例如:
public class GetArrayValue{
public static void main(String args[]){
//定義一個char陣列
char ch_name[]={'h','e','l','l','o'};
//增強的for迴圈語句遍歷陣列
for(char c_name:ch_name){
System.out.println("增強的for迴圈中的陣列值="+c_name);
}
}
}
以上是我們在java中經常使用的程式流程的控制語句。