java基礎學習之十二:控制流
一、Java基礎回顧
我們現在知道:
- 物件:物件是類的一個例項,有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
- 類:類是一個模板,它描述一類物件的行為和狀態。
在java語言裡,物件要通過一個類來封裝 . 類就像一個袋子一樣把一條?狗的屬性和行為都給裝了起來. 再稍微深入一些層次講,類對物件的封裝,就好像手機殼對手機各個零部件的封裝,沒有這個外殼,就算有零件這個手機也是不完整的.有了手機外殼也能忽悠人呢..哈哈.程式設計好壞也和做手機一樣,精工細作.
一個入門例項:
程式中包括Java的一些基本特徵:
類(class):上面程式定義了一個類HelloWorld,該類的名字與.java檔案的名字相同。
方法(method):類的內部定義了該類的一個方法main。
語句(statement):真正的“列印”功能由一個語句實現,即: System.out.println("Hello World!");
二、Java控制流
下面兩點有關Java的書寫方式:
Java中的語句要以;結尾 (與C/C++相同)。
用花括號{}來整合語句,形成程式塊。通過程式塊,我們可以知道程式的不同部分的範圍,比如類從哪裡開始,到哪裡結束。
A.函式:
函式在程式中就像,手機的廣播一樣發揮著特定的功能,一個好的函式(或成為方法) 只做一件事,一件事做到極致也是不容易的.
B.引數:
函式還可以有引數:引數就像是製造手機所用的原料一樣有用.當然一個函式也可以沒有引數,可以在函式內部定義變數,自產原料.
寫法格式:
修飾符 函式名(資料型別 引數名1,資料型別 引數名2, .....){
其他功能
}
C.控制結構:
控制結構就更加接近我們的邏輯了:比如:今天吃飯或者不吃去哪吃,吃什麼都是由選擇構成的,if 肚子很餓,就吃statements1,else if 稍微餓就吃staetments2,最後else 上面條件都不滿足,就吃statements3抽象出來就是:
選擇結構 (if):
if (conditon1) {
statements1;
...
}
else if (condition2) {
statements2;
...
}
else {
statements3;
...
}
選擇 (switch):就像是if 選擇的特殊情況,對於條件確定的,不是表示連續範圍的可以用,注意expression位置是數字型別或者char,再或者string(java8)
switch(expression) {
case 1:
statements;
break;
case 2:
statements;
break;
...
default:
statements;
break;
}
接下來就是比較像流水作業一樣的東西了:
比如工廠用同一個 流水線生產工件,如果機器停了整個流水線就停了,while(條件),如果生產出來廢物 就扔掉繼續( continue),如果流水線有一處有故障就停了,(break)
while迴圈 :
語法
while (condition) {
if(次品){
continue; //除去下面步驟,繼續迴圈
}
if(流水線壞了){
break;//整個過程結束
}
statements; //工序
}
do{工序}while(條件)
,至少做一次,才判斷條件是否成立,成立繼續做,否則結束.
for迴圈: 就是工件個數固定的流水線和while基本相似.
語法
for (initial; condition; update) {
statements;
}
在迴圈中,可以使用
break; // 跳出迴圈
continue; // 直接進入下一環
三、出個題目 ,並列出答案
題目為:
題目:密西西比河岸某處陸地因為河水侵蝕,每年陸地面積都在減少,每年減少50平方英里,減少的陸地面積呈半圓形,即該半圓形面積以每年50平方英里的速度增長。在第一年初時,該半圓形面積為0,半圓形的圓心座標為(0,0),現在的任務是給定一個座標,求出該座標在哪一年年底會被河水侵蝕。假設給定的座標到圓心的距離不會等於半圓的半徑。 輸入:第一行輸入座標個數,第二行開始輸入座標,每個座標佔一行,每個座標由橫座標和縱座標組成,座標值為浮點數,單位為英里。 輸出:輸出該座標會在哪一年年底開始被河水侵蝕。對應每個座標輸出一行,輸出結束後輸出 “END OF OUTPUT.”
例項答案:
package POJSoft;
import java.util.Scanner;
/**
* Created by zhaomingwei on 16/3/31.
*/
public class Main1005 {
public static double PI = 3.14;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
//通過for迴圈獲得每次的讀數
for (int i = 1;i <= num; i++){
double xAxis = scanner.nextDouble();
double yAyis = scanner.nextDouble();
//Java7,8
//System.out.printf("Property %d: This property will begin eroding in year
//%d.",i,getLeftYears(xAxis,yAyis));
System.out.println("Property " + i + ": This property will begin eroding in year " +
getLeftYears(xAxis, yAyis) + ".");
}
System.out.println("END OF OUTPUT.");
}
public static int getLeftYears(double x,double y){
int n = 1;
//多用於計算不確定次數的情況
while(n<=(x*x+y*y)*PI/100){
n++;
}
return n;
}
}
練一練控制結構:
if 選擇:
public class TryAssertions {
public static void main(String args[]) {
int daysInMonth = 32;
if(daysInMonth == 30) { //false
System.out.println("Month is April, June, September, or November");
} else if(daysInMonth == 31) { //false
System.out.println(
"Month is January, March, May, July, August, October, or December.");
} else if(daysInMonth == 28 || daysInMonth == 29) { //false
System.out.println("Month is February.");
} else {
assert false; //最後會走到這個地方,上面因為if(false)不會執行了
}
}
}
switch 選擇:
public class TrySwitch {
enum WashChoice {cotton, linen, wool, synthetic} // 列舉型別Define enumeration type
public static void main(String[] args) {
WashChoice wash = WashChoice.cotton; // Variable to define the choice of wash
// The clothes variable specifies the clothes to be washed by an integer value
// 1:shirts 2:sweaters 3:socks 4:sheets 5:pants
int clothes = 3;
switch(clothes) {
case 1:
System.out.println("Washing shirts.");
wash = WashChoice.cotton;
break; //如果沒有break的話,語句依然往下執行.
case 2:
System.out.println("Washing sweaters.");
wash = WashChoice.wool;
break;
case 3:
System.out.println("Washing socks.");
wash = WashChoice.wool;
break;
case 4:
System.out.println("Washing sheets.");
wash = WashChoice.linen;
break;
case 5:
System.out.println("Washing pants.");
wash = WashChoice.synthetic;
break;
default:
System.out.println("Unknown washing - default synthetic.");
wash = WashChoice.synthetic;
break;
}
}
}
while迴圈:
public class WhileLoop {
public static void main(String[] args) {
int limit = 20;
int sum = 0;
int i = 1;
//while的()括號裡面必須是boolean型別的,true的時候執行,false的時候結束
while(i <= limit) { //當i <= limit 時候(true) 即是 i<=20的時候執行,
sum += i++; //特別注意臨界點當i++ = 21的時候,進行下次迴圈的時候
// i<=limit = false ,while 迴圈結束
}
System.out.println("sum = " + sum); //進行了1+2+3+...+20 = 210
}
}
for迴圈:
與上面的while類似不過,for迴圈的次數是確定的.
public class ForLoop {
public static void main(String[] args) {
int limit = 20; // Sum from 1 to this value
int sum = 0; // Accumulate sum in this variable
// 從 1 開始到 limit 20 , i每次加 1
for(int i = 1; i <= limit; i++) {
sum += i;
}
System.out.println("sum = " + sum);
}
}
最近申請了微信公眾號,希望大家來看看,專門為程式設計師而生,做最好的程式設計
相關文章
- java基礎學習_io流之FileInputStreamJava
- Java基礎之IO轉換流學習Java
- java基礎學習之--XMLJavaXML
- Java之IO流基礎流物件Java物件
- java基礎學習:JavaWeb之ServletJavaWebServlet
- JAVA基礎學習篇之反射Java反射
- Java學習之基礎語法Java
- Java學習之基礎語法練習Java
- java基礎學習:JavaWeb之JSPJavaWebJS
- java基礎學習之十三:泛型Java泛型
- Java基礎之邏輯控制Java
- Java基礎學習Java
- 學習Java基礎知識,打通面試關~十二介面與抽象類Java面試抽象
- 流程控制與陣列—Java基礎學習(二)陣列Java
- java基礎學習:JavaWeb之Cookie和SessionJavaWebCookieSession
- java基礎學習:JavaWeb之request和responseJavaWeb
- java基礎學習之類集框架(十)Java框架
- java基礎學習之四:修飾符Java
- JAVA學習--JAVA基礎(一)Java
- JAVA基礎之六-Stream(流)簡介Java
- 傳智黑馬java基礎學習——day23(位元組流、字元流)Java字元
- java基礎的學習Java
- opencv學習之基礎OpenCV
- java基礎學習之七:陣列型別Java陣列型別
- java基礎學習之六:String型別Java型別
- javascript基礎(控制流程(迴圈 while,for))(十二)JavaScriptWhile
- [Java基礎]Stream流Java
- 【Java 反射學習】Java 反射基礎Java反射
- [Java 反射學習] Java 反射基礎Java反射
- Java零基礎學java之IO流--05InputStream位元組輸入流Java
- 零基礎學Java(6)控制流程Java
- Activiti工作流基礎學習筆記筆記
- java基礎學習(目錄)Java
- Java基礎 快速學習(二)Java
- Java基礎 快速學習(三)Java
- Java基礎 快速學習(四)Java
- java語言基礎學習Java
- Java基礎學習筆記Java筆記