for語句,if else語句與switch語句
if else語句:
if(關係表示式)//括號裡面必須是布林表示式
{語句體1
}
else
{
語句體2
}
執行流程先判斷關係表示式為true還是false,如果是true,則執行語句體1,如果為flase,則執行語句體2.
for語句:
結構;
for(c初始化語句;條件1;增量語句)
{
//程式碼塊1
}
for語句解釋:先執行初始語句,接著條件1的判斷為true,在執行程式碼塊1,然後執行增量語句,然後條件1的判斷,如此迴圈直到條件1為false.
練習:
1,
判斷是否為素數
public static boolean su(int a){
for (int i=2;i<a;i++){
if(a%i==0){
return false;
}
}
return true;
}
boolean c=su(6);
輸出結果為flse,說明6不是素數
2,
比較倆個數的大小
public static int Max2(int a,int b){//void無返回值,
if(a>b){System.out.println("a>b");
return a;
}
else if(a==b){System.out.println("a==b");
}
else{System.out.println("a<b");}
return a;
}
int a =10;
int b = 20;
Max2(a,b);
輸出結果為a< b
3,階乘計算
public static int jiecheng(int n){
int t =1;
for(int b=1;b<=n;b++){
t=t*b;
}
return t;
System.out.println(jiecheng(3));
}
此時計算3的階乘
輸出結果為6.
4,計算1+2+3+…+n
public static int sum(int n){
int sum=0;
for(int a=1;a<=n;a++){
sum=sum+a;
}return sum;
}
System.out.println(sum(10));
此時計算的是1+2+3+…+10的和輸出結果為55.
5,輸出乘法表。
public static void chengfabiao(int n){
int v;
for(int c=1;c<=n;c++){
for(int b=1;b<=n;b++){
v=b*c;
System.out.println(c+"*"+b+"="+v);
}
}
}
chengfabiao(5);
此時輸出的是5以內的乘法表,結果如下
6,計算斐波那契數列的第n個數
public static int FBNQ(int n){
int a1=1;
int a2=0;
int a3=0;
for(int i=0;i<n;i++)
{
a3=a1+a2;
a1=a2;
a2=a3;
}
return a3;
}
System.out.println(FBNQ(6));
此時輸出的為斐波那契數列打的第六個數,結果為8.
7,計算n以內可以被5整除又可以被3整除的數
public static void fun2(int n){
int i;
for( i=0;i<=n;i++)
{if(i%15!=0){
continue;}
System.out.println(i);
}
}fun2(20);
結果為15.
8,計算從0+1+2+..+n,當n為多少時,和小於10.
int tmp=0;
int i;
for( i=1;;i++){
tmp=tmp+i;
if(tmp>10){
break;
}
當i等於5時,0到n的值超過了10,所以輸出結果為5.
switch 語句
不能用作switch引數的有:boolean double float long
一般形式:
switch(表示式){
case 常量表達式1: 語句1;//一個case只能表示某一種情況,不能表示多種。
case 常量表達式2: 語句2;
…
case 常量表達式n: 語句n;
default: 語句n+1;
}
執行過程是先計算表示式的值,再逐個和case 後的常量表達式比較,若不等則繼續往下比較,若一直不等,則執行default後的語句;若等於某一個常量表達式,則從這個表示式後的語句開始執行,並執行後面所有case後的語句。
一般在每一句case後面加入break語句,防止得到多餘的輸出結果。
注意事項:
1.case後的常量表達式不能相同;
2. case後的語句可以有多個且不用花括號括起來;
3. case和default子句的先後順序可以先後變動,default子句可以省略不用;
練習:
題目,
當輸入結果為A時候,輸出80分以上
當輸入結果為B時候,輸出70-80
當輸入結果為C時候,輸出60-70
當輸入結果為D時候,輸出50-60
當輸入結果為E,F時候,輸出沒救了
public static void main(String[] args) {
char a ='E';
switch(a){
case 'A':
System.out.println("80分以上");break;
case 'B':
System.out.println("70-80");break;
case 'C':
System.out.println("60-70");break;
case 'D':
System.out.println("50-60");break;
case 'E':
System.out.println("沒救了");break;
default:
System.out.println("沒救了");break;
}
}
}
此時的輸入為E,所以輸出結果為沒救了。
交換倆個數的值
public static void swap(int [] a){
int c;
c= a[0];
a[0] =a[1] ;
a[1] = c;
}
public static void main(String[] args) {
int a=1;
int b=2;
int z[]=new int[2];
z[0]=a;
z[1]=b;
swap(z);
a=z[0];
b=z[1];
System.out.println("a"+"="+a);
System.out.println("b"+"="+b);
}
結果為
final:
final int A=10;//常量,初始化之後不能改變其值 變數名最好大寫 編譯的時候就可以確定
int z;//區域性變數,定義的時候,必須初始化