main(String args[])中的[]如果沒寫,可以compilier,
但不能執行,會出現錯誤訊息:找不到主方法,這就代表main有錯!
 
class name最好和檔名一致,
因為compilier後產生的*.class檔名會以前面的class name命名
 
● Operator 運算子、元、符號
(一)算術運算子( +-*/% )
int x=10;
int y=3;
 
System.out.println("x+y="+(x+y));
System.out.println("x+y="+(x-y));
System.out.println("x+y="+(x*y));
System.out.println("x+y="+(x/y));
//要有小數點要先把分子或分母任一變成double
System.out.println("x+y="+(double)(x/y));
//在x/y的時候已經先把結果視為int,去掉小數才轉型為double
System.out.println("x+y="+((double)x/y));
System.out.println("x+y="+(x%y));
 
(二)指定運算子(遞增/減)
1.   =  :等號的左邊一定要是變數(將變數視為容器),不能為計算式,
右邊可為值、變數或計算式 ,所以程式一定會先run右邊得到一個結果再給左邊
Int x=10;
x =20;
這時候,10還是存在,是一種資料堆疊的概念,有兩個不同時間點的x,
但在java中會永遠保持兩層,有第3層時會把第1層刪掉
Ex:
int x=10; // 第一層x
System.out.println("x="+x);
x=x+20; //第二層x
System.out.println("x="+x);
x=2*x+25; //第三層x已抽掉第一層x,用第二層x計算
System.out.println("x="+x);
 
2.+=、-=、*=、/=、%=
Ex:
int Chinese=98;
//Chinese=Chinese+10;
Chinese+=10;
System.out.println(Chinese);
 
//Chinese=Chinese-10;
Chinese-=10;
System.out.println(Chinese);
 
//Chinese=Chinese*10;
Chinese*=10;
System.out.println(Chinese);
 
//Chinese=Chinese/10;
Chinese/=10;
System.out.println(Chinese);
 
//Chinese=Chinese%3;
Chinese%=3;
System.out.println(Chinese);
 
 
3.++,--
X++=>x+1
X--=>x-1
運算符號有先後順序,所以++x和x++會不一樣
Ex:
int x=10;
int y;
++x; y=x //output x=11,y=11
y=x++; //output x=11,y=10,因為先做y=x;再做x=x+1;
y=++x; //output x=11,y=11,因為先做x=x+1;再做y=x;
 
(三)關係運算子(relation)=>判斷式用
1.結果(True/false)
2.>、<、>=、<=、==、!=
Ex:
int chi=65;
 
System.out.println("chi>60---->"+(chi>60)); //outputs true
System.out.println("chi<60---->"+(chi<60)); //outputs false
System.out.println("chi>=60---->"+(chi>=60)); //outputs true
System.out.println("chi<=60---->"+(chi<=60)); //outputs false
System.out.println("chi==60---->"+(chi==60)); //outputs false
System.out.println("chi!=60---->"+(chi!=60)); //outputs true
 
(四)條件運算子=>多個判斷條件
1.&&(AND)、||(OR)
EX:
int chi=70;
int eng=80;
System.out.println("chi>65 && eng>90---->"+(chi>65 && eng>90)); //outputs false
System.out.println("chi>65 || eng>90---->"+(chi>65 && eng>90)); //outputs true
 
2.^(XOR):至少一個true,但全都為true時會變false
Ex:
int chi=70;
int eng=95;
//outputs true
System.out.println("chi>65 || eng>90---->"+(chi>65 ^ eng<90));
//outputs true
System.out.println("chi>65 ^ eng>90---->"+(chi>65 ^ eng>90));
 
3.!(not):反轉結果把true=>false把false=>true
int chi=70;
int eng=95;
//outputs false
System.out.println("chi>65 && eng>90---->"+(!(chi>65 && eng>90)));
//outputs true
System.out.println("chi>65 ^ eng>90---->"+(!(chi>65) ^ eng>90));
 
(五)位元,位移運算子=>會轉成2進位計算,再轉10進位顯示成果
1.位元 :
&(AND=>乘):
5=>00000101
2=>00000010
=>00000000 =>10進位的0
EX:
int chi=70;
int eng=80;
// outputs false
System.out.println("chi>65 & eng>90---->"+(chi>65 & eng>90));
作法為:判斷chi>65為true=>1 eng>90為false=>0 1&0=>false
 
|(OR=>加):
5=>00000101
2=>00000010
=>00000111 =>10進位的7
 
^(XOR) :
7=>00000111
5=>00000101
=>00000010=>10進位的2
 
~(補數):正整數和負整數相對應到相同位置的值,
如:正整數開始為0對應到負整數開始為-1
Ex:
//outputs 整數5是第6個位置,去找負整數第6個位置就是-6
System.out.println(~5);
//outputs負整數-5是第5個位置,去找數第5個位置就是4
System.out.println(~(-5));
 
2.位移 :>>(向右移2位)、<<(向左移2位)
Ex:
System.out.println(5>>2); //outputs 1
5=>00000101 右移兩位=>000001,前面補0=>00000001=>10進位的1
System.out.println(5<<2); //outputs 20
5=>00000101 左移兩位=>000101,後面補0=>00010100=>10進位的20
 
●流程圖
代表開始/結束
代表一般的步驟;輸出(計算式,定義變數…)
代表輸入;鍵盤
 
流程圖範例
X:int; =>代表變數x的reference為int
ex:
class ex3{
     public static void main(String args[]){
          java.util.Scanner sc=new java.util.Scanner(System.in);
          System.out.println("請輸入一個數字");
          int x;
          x=sc.nextInt();
          System.out.println("您輸入的是:"+x);
     }
}
 
Java前一定要有功能文件
java.util.Scanner sc =>sc為變數,變數前即為reference(功能文件)
Scanner只能在dos下輸入資料
x=sc.nextInt(); =>nextInt()只能輸入整數,把key進去的值放入x
“.”代表把nextInt()從java.util.Scanner sc call出來
 
實作:尺25元,筆39元
流程圖
java.util.Scanner sc=new java.util.Scanner(System.in);
System.out.println("請輸入尺的數量");
int x;
x=sc.nextInt();
System.out.println("請輸入筆的數量");
int y;
y=sc.nextInt();
System.out.println("一共是"+(25*x+39*y)+"元");
 
在int y;前面可以再new一次java.util.Scanner作出第二個物件sc2
java.util.Scanner sc2=new java.util.Scanner(System.in);
 
在這邊這兩個做法都是可以的,一個是同一物件執行兩次,
一個是兩個物件各執行一次
 
流程控制 =>條件判斷(true/false)
1.if(單選)
圖示法:代表圖為菱形,右邊的點代表 true(blue),左邊和下面的點代表false(orange)
(1)單一條件,單一選項
     語法:
     If(條件) 符合動作;
Ex: java.util.Scanner sc=new java.util.Scanner(System.in);
int chi=sc.nextInt();
if(chi>=60) System.out.println("及格");
*注意當只有一行的時候才可以省略{},如果有兩行以上敘述不可省略
 
(2) 單一條件,兩個選項
語法:
If(條件){ 符合……}else{不符合…..}
 
ex:
java.util.Scanner sc=new java.util.Scanner(System.in);
int chi=sc.nextInt();
if(chi>=60) {
System.out.println("及格");
System.out.println("恭喜");
}
else{
System.out.println("不及格");
System.out.println("加油");
}
 
(3)多個條件,單一選項
語法:
If(條件1){符合1…..}
  else if(條件2) {符合2…..}
  else if(條件3) {符合3…..}
  ….
  else{ 皆不符合}
 
Ex:
java.util.Scanner sc=new java.util.Scanner(System.in);
int chi=sc.nextInt();
if(chi>=91 && chi<=100){
     System.out.println("A");
}else if(chi>=76 && chi <=90){
     if(chi>=82){
          System.out.println("B+");
     }else{
          System.out.println("B-");
}
}else if(chi>=60 && chi <=75){
     System.out.println("C");
}else if(chi>=0 && chi <=59){
     System.out.println("D");
}else{
     System.out.println("0~100");
}
=>由分數高的往下做
 
(4) 三元運算子=>與if…else….一樣
語法 :條件? 符合(true): 不符合(false)
=>兩者都必須產生”值”,不能出現一個計算式或變數
=>?的用法和if一樣
=>通常三元運算會在程式只run一行且功能一樣或同樣為計算式時
Ex:
java.util.Scanner sc=new java.util.Scanner(System.in);
int chi=sc.nextInt();
System.out.println(chi>=60? "ok":"no");
 
 
(5) switch=>可單選/複選(資料類型和變數類型需要一致)
語法:
Switch(變數){
case 值1:
變數之值為1的動作
[break;]
case 值2:
變數之值為2的動作
[break;]
case 值3:
變數之值為3的動作
[break;]
…..
default:
皆不符合
}
=>調整break的位置,可以做成複選
(ex:case 2不放break,case3才放break,當符合case2會一直執行到case3)
=>break只能在switch和loop中使用
=>變數的限定
1.整數:byte,short,int
2.字元:char
3.字串:String
Ex:
 
java.util.Scanner sc=new java.util.Scanner(System.in);
System.out.println("會員等級:\n1)VIP\n2)金卡\n3)銀卡\n4)普通");
int member=sc.nextInt();
switch(member)
{
    case 1:
    System.out.println("VIP");
break;
case 2:
System.out.println("金卡");
break;
case 3:
System.out.println("銀卡");
break;
case 4:
System.out.println("普通");
break;
default:
System.out.println("1~4");
}
 
 
 
 
 
 
 
 
 
arrow
arrow
    創作者介紹
    創作者 muchone 的頭像
    muchone

    簡單。生活。享受

    muchone 發表在 痞客邦 留言(0) 人氣()