1. 程式人生 > >For迴圈 Switch語句

For迴圈 Switch語句

1.三個數中求最大值
利用max函式兩兩比較,兩次得出最大值

System.out.println("fun1():"+(val<1));
return val<1;
}
public ststic boolean fun2(int val){
System.out.println("fun2():"+(val<2));
retrn val<2;}
public static boolean fun3(int val){
System.out.println("fun3():"+(val<3));
return val<3;
}
public static int maxTwo(int a,int b){
/*if(a<b){
System.out.println("a<b");
else{
System.out.println("a>b");
}*/
//兩個數比較大小  用max函式
return a > b ? a:b;
}
public static int maxThree(int a,int b,int c){
return maxTwo(maxTwo(a,b),c);
}

For迴圈:
for(初始化設定表示式,迴圈執行條件,迴圈變數的增減量){
迴圈語句序列;}
注意的是 迴圈執行條件只能是判斷式 true或者false

2.求輸入的數字是否為素數?2,3,7

for(int =2;i<n;i++){
if(n%i==0){
return flase;
}
}
return true;
}//思路:素數只能被本身整除,即餘數必定為0

3.判斷當前年,是否為閏年?
&& 短路與 出現false後面就不會呼叫; || 短路或 出現true後面不會呼叫;

/*1.能被4整除不能被100整除
  2.能被400整除*/
  if (year % 4==0 && year % 100 !=0|| year % 400==0){
  return true;
  }
  return false;
  }

4.成績查詢 要求輸入等級,輸出分數區間

switch (ch){
case'A':
System.out.prinytln("80-90");
break;
case'B':
System.out.println(“70-80“);
break;
case'C':
System.out.println("60-70");
break;
case'D':
System.out.println("60以下");
break;
default;
System.out.println("好好學習");
break;
}
}

switch語句
switch(控制表示式){
case(常量表達式)1;
語句序列1:
break
.
.
default;
語句序列n+1;
break;
}


long fioat double不可以做switch引數 其他包括列舉可以 相應包裝類也可做引數
break終止本次迴圈,dafault跳出迴圈
5.求1+2+3+4+…+n

public static int sumN(int n){
int sum = 0:
for (int i = 1;i <= n;i ++);{
sum = sum + i;//sum += i;
}
return sum;
}

6.求斐波那契數列的前40項的和
1,1,2,3,5,8,…
F1 = 1, n = 1;
F2 = 1, n = 2;
Fn = Fn-1 + Fn-2 n>=3;

public static void main(String[ ] args){
int f1 = 1,f2 = 1;
for (int i = 1,i <= 20;i ++){
System.out.println("%5d\t%5d\t",f1,f2);/一次輸出兩項
if (i % 2 == 0);//每行顯示四項
System.out.println ();
f1 +=f2;
f2 +=f1;
}
}
}

7.用for迴圈產生20個隨機數 (10-20)
a-b;Math.random( ) *(b-a)+a
Math.random( ):[0,1) 左閉右開 double
利用Math.random()方法獲取隨機數,把隨機數賦值到陣列當中,再遍歷陣列,把隨機出來的值,和遍歷出陣列中的每個值作比較,如果相等就把for迴圈次數 i-- 回到上一次迴圈,再把下一個迴圈出來的值賦值給上一個迴圈重複的值(通過在次賦值的方式,去掉陣列中重複值的)。

	public static void main(String[] args) {
		int arr[] = new int[10];//10個數的陣列
		for (int i = 0; i < arr.length; i++) {
			int index = (int)(Math.random() * 20 + 1);//生產一個10-20的隨機數
			arr[i] = index;		//把隨機數賦值給下標為陣列下標為i的值
			
			for (int j = 0; j < i; j++) {//(遍歷陣列中儲存進去的值,i中有幾個值則迴圈幾次)
				
				if (arr[j] == arr[i]) {//把儲存在陣列中的值j 和 隨機出的值i 做比較
					i--; //陣列的值下標-1,i的迴圈次數回到上次
					break;
				}
			}
		}
		for (int i = 0; i < arr.length; i++) {//列印陣列
			System.out.print(arr[i] + " ");
		}
	}
}

8.輸入一個數字,求它是幾位數,並且順序輸出,逆序輸出

    Scanner scanner = new Scanner(System.in);
    int n = scanner.nextInt();
    String str = Integer.toString(n);
    System.out.println("它是一個"+str.length()+" 位數");
    System.out.println("順序輸出為:"+str);
    System.out.println("逆序輸出為:"+reverseOutput(str));
}
public static String reverseOutput(String str) {
    char[] ch = str.toCharArray();
    char sum = 'a';
    int n = str.length()-1;
    for(int i = 0;i < n/2;i++) {
        sum = ch[n-i];
        ch[n-i] = ch[i];
        ch[i] = sum;
    }
    return String.valueOf(ch);
}

9.求一個數字的二進位制有幾個1
思路:這個數的二進位制減1,然後和這個數求”與“,再減1,和上一個數求“與”,直到為0,減了1的個數就是這個數二進位制的1的個數。

    public int NumberOf1(int n) {
        int count = 0;
        while(n!= 0){
            count++;
            n = n & (n - 1);
         }
        return count;
    }
}