Try   HackMD

Java第七週[JPA210~302 switch判斷、for迴圈、charAt函數、找因數]

複習用

開始解題(JPA210~302):

第一題(JPA210)-鍵盤字元判斷[switch判斷用法]:

Switch用法( 多選一,VB的Select case )

switch(x) { case '字元': case '字元': //多個判斷 break; //強制跳出 case 'a': //單一判斷 字元 break; //強制跳出 case 3: //單一判斷 數值 break; //強制跳出 default: //最後判斷 (其他選項) }
  • 注意:
    switch 敘述有一個很大的使用限制。
    switch 敘述括號裡的運算式,只能是byte、char、short、int這四種型態之一。
    其它型態不可用。

keyboard.next() VS keyboard.nextLine()

keyboard.next() //無限制,可以打無限多個字串 keyboard.nextLine() //有特別限制,只能打一個字串

字串處理函數 charAt() [指定字元、切字元]

只抓字串中的某一字元

char a="abcde"; //用陣列方式儲存(索引值) a.charAt(0)='a' //a[0] a.charAt(1)='b' //a[1] a.charAt(2)='c' //a[2] a.charAt(3)='d' //a[3] a.charAt(4)='e' //a[4]

解答:

import java.util.*;
class JPA210 
{
	static Scanner keyboard = new Scanner(System.in);
	public static void main(String[] args) 
	{
        	test();
        	test();
        	test();
        	test();
        	test();
    	}
  
	public static void test() 
	{
        	System.out.println("Input a character:");
		char c=keyboard.next().charAt(0);
		//宣告一個字元,名稱為c 
	        //keyboard.next()代表要求使用者輸入一個字串

               //老師出題
		char a=keyboard.next().charAt(4);	//輸入abcde抓e (結果沒有)
							//輸入abcab抓b (a or b)
		
		switch(c)    //多選一
		{
			case 'a':    //'a' 代表一個字元''
			case 'b':
				System.out.println("You entered a or b");
				break;	//整個switch結束(強制跳出)

			case 'x':
				System.out.println("You entered x");
				break;

			case 'y':
				System.out.println("You entered y");
				break;
	
			default:  //其他選項
				System.out.println("You entered something else.");
			
		}
		
    	}
}




第二題(JPA301)-整數連加[for迴圈運用(累加)]:

累次 VS 累加

sum=sum+i; //累加 sum+=i; sum=sum+1; //累次 sum+=1; sum++;


解答:

import java.util.*;
class JPA301 
{
	public static void main(String argv[]) 
	{
        	Scanner keyboard=new Scanner(System.in);
		System.out.println("Input:");			
		int n=keyboard.nextInt();    //輸入88
		
		int sum=0;
        	for (int i=1;i<=n;i++) //java特殊寫法(int可寫在for迴圈裡面)
		{
        	    sum+=i;  //sum=sum+i;  累加              
        	}
        	System.out.println("1 + ... + "+n+" = "+sum);
    	}	//題目強制要求用println,用 + 串接
}

第三題(JPA302)-巢狀迴圈[雙for迴圈運用]:

  • 9次*3圈=27

解答:

import java.util.Scanner;
public class JPA302 
{
	public static void main(String[] args) 
	{
        	int i = 1, j = 1, count = 0;
        	for(i=1;i<=3;i++) //第一個迴圈,i從1到3 
		{        
            		for(j=1;j<=9;j++) //第二個迴圈,j從1到9 
			{
				count++;  //count+=1;
			}	
        	}
        	System.out.printf("count = %d\n", count);
    	}
}

第四題(額外老師出題)-[找a、b各自因數,並找共同因數]:


解答:

import java.util.*;
public class JPA01
{
	public static void main(String[]args)
	{
		Scanner keyboard=new Scanner(System.in);
		System.out.println("請輸入兩個整數:");
		int a=keyboard.nextInt();
		int b=keyboard.nextInt();
		
		fun(a);    //用函數處理,不用多寫程式碼
		fun(b);
		
		int i;
		if(a>b)    //共同的因數做法
		{
			for(i=1;i<=a;i++)
			{
				if((a%i==0)&&(b%i==0))
				{
					System.out.printf("%d和%d共同的因數有%d\n",a,b,i);
				}
			}
		}
		else if(a<b)
		{
			for(i=1;i<=b;i++)
			{
				if((a%i==0)&&(b%i==0))
				{
					System.out.printf("%d和%d共同的因數有%d\n",a,b,i);
				}
			}
		}
		
	}
	static void fun(int n)
	{
		int sum=0,count=0;
		for(int i=1;i<=n;i++)
		{
			if(n%i==0)
			{
				count++;	//a的因數有幾個
				sum=i;		//sum=該因數
			System.out.printf("%d的因數有 %d",n,sum);
			System.out.printf("\n");
			}
		}
	}
}

最後編輯時間:2021/4/11 3:42pm.

tags: JAVA課堂學習 複習用 高科大