Java學習之路0715(二)(變數的使用、宣告,賦值,運算子,控制語句)
阿新 • • 發佈:2019-01-10
1、變數的使用
1、宣告變數,即根據資料型別在記憶體中申請儲存空間
2、賦值
2、變數命名規則
要求簡潔,首字母以字母、下劃線_、美元符$,後面可以是字母、下劃線、美元符任意組合,變數名須是名詞,且第一個單詞首字母小寫,後續單詞首字母大寫。具體參照駝峰命名法(下劃線,美元符有特殊意義)
基本資料型別的分類
3、運算子
算術運算子:+、-、*、/(取整)、%(取餘數)
遞增遞減運算子:i++、i–、++i、–i。(前者是先使用i的值再執行自增自減,後者是先執行自增自減,再使用i的值。例如:int i=2;int j=i++;輸出的j=2,i=3;int j=++i;j=3,i=3)
賦值運算子:=、+=、-=、*=、/=
public class HelloWorld {
public static void main(String[] args) {
int i=2;
int j=3;
int k=i/j;//k=2
k=i++;//k=2,i=3
k=++i;//k=3,i=3
j+=i;//j=5
System.out.print(k);
}
}
關係運算符:>、>=、<、<=、==、!=
邏輯運算子:&&、||、!(短路與、或、非)
使用&&時,當第一個表示式為false時不會去判斷後面的表示式;
使用||時,當第一個表示式為true時不會去判斷後面的表示式。
public class Test5 {
public static void main(String [] args){
boolean b1=true;
boolean b2=false;
if(b1&&b2){ //輸入的會是2
System.out.println("1");
}else{
System.out.println("2");
}
if(b1||b2){ //輸入的會是1
System.out.println("1");
}else{
System.out.println("2");
}
}
}
&&和& 的區別就是當有多個表示式時,遇到第一個為false時,後面的表示式就不在進行判斷,同樣||和|的區別是遇到第一個為true時,後面的表示式就不在進行判斷
三目運算子:表示式1:?:表示式2(Java中不允許使用,不方便閱讀)
public class Test5 {
public static void main(String [] args){
int j=2;
int k=3;
int i=0;
i=(k<j)?1:2; //當?前面的表示式為true時,執行:前的,否則執行:後面的
System.out.println(i);//輸入的i=2
}
}
位運算子:&、|、^(異或)、~(非)
&為按位與,|為按位或
移位運算子:>>(向右移位)、<<(向左移位)、>>>(無符號向右移位)
*、/、%同級運算
浮點數可以除零,整型運算不能
整數取模,浮點數取模,餘數取模
a%b=a-(a/b)整數取模 a%b=a-(b*q) q=int(a/b)
Java程式控制語句
Java程式控制語句分為順序語句,分支語句(if ···else···,switch···case),迴圈語句(for,while,do···while)
if···else···的用法
import java.util.Scanner;
/**
* 我的第一個Java程式
* @author jie
*
*/
public class HelloWorld {
public static void main(String[] args) {
int score ;
Scanner scanner=new Scanner(System.in);
score=scanner.nextInt();//這裡會發生阻塞,等待
if(score>=95){
System.out.println("獎勵 iPhone6s Pro");
if(score>=98){
System.out.println("塞班島一日遊");
}else if(score==100){
System.out.println("馬爾地夫雙日遊");
}
}
else if(score>=60){
System.out.println("考試通過");
}
else{
System.out.println("下次努力");
}
}
}
switch··· case···
import java.util.Scanner;;
public class Test1 {
public static void main(String[] args){
int score;
Scanner scanner=new Scanner(System.in);
score=scanner.nextInt();
switch(score/10){
case 10:
System.out.println("滿分");
break;
case 9:
System.out.println("優秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
System.out.println("中等");
break;
case 6:
System.out.println("及格");
break;
default:
System.out.println("掛科");
break;
}
}
}
三種迴圈語句
public class Test2 {
public static void main(String[]agrs){
int i=0;
int s=0;
//for迴圈
for(;i<=1000;i++){
s+=i;
}
System.out.println("for迴圈"+s);
//while迴圈
i=0;
s=0;
while(i<=1000){
s+=i;
i++;
}
System.out.println("while迴圈"+s);
//do···while迴圈
i=0;
s=0;
do{
s+=i;
i++;
}while(i<=1000);
System.out.println("do···while迴圈"+s);
}
}
計算1000以內水仙花數的個數,例如:153=1*1*1+5*5*5+3*3*3
public class Test3 {
public static void main(String [] args){
int a=0;
int b=0;
int c=0;
int s=0;
int j=0;
for(int i=100;i<1000;i++){
a=i/100;
b=i%100/10;
c=i%10;
s=a*a*a+b*b*b+c*c*c;
//System.out.println(i+" "+a+" "+b+" "+c+" "+s);
if(s==i){
j++;
System.out.print(i+" ");
}
}
System.out.println("1000以內的水仙花數有"+j+"個");//153 370 371 407 1000以內的水仙花數有4個
}
}
給出一個計算給出一個隨機整數,求其二進位制情況下這個數有多少個1?
import java.util.Scanner;;
public class Test4 {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
//int a=scanner.nextInt();
int count=0;
/*int i;
for(int j = 0;j<32;j++){
if(i%2==1){
//最後一位是1
count++;
}
i=i>>1;//i>>=1
}
System.out.println(count);*/
int k=scanner.nextInt();
//int count=0;
while(k!=0){
if(k%2==1){
count++;
}
k=k/2;
}
System.out.println(count);
}
}
在迴圈語句中break與continue的區別:
break是跳出迴圈,不再執行迴圈運算,continue是指跳出本次迴圈,不再執行本次迴圈continue後面的語句,接著執行下一次迴圈
public class Test6 {
public static void main(String[] args){
for(int i=0;i<=10;i++){
System.out.print("第"+i+"次迴圈"+" ");
if(i==5){
System.out.println(i+"未跳出迴圈");
break;
}
else if(i==3){
System.out.println(i+"跳出本次迴圈");
continue;
}
System.out.println("給糖吃");
}
}
}