08月2日 星期一
講的最多的是幾道題:
先來一道ATM機的:
package HomeWork;
import javax.swing.JOptionPane;
public class ATM {
public static void main(String[] args) {
int a = 0;
while (a < 3) {
String userName = JOptionPane.showInputDialog("請輸入卡號");
String pwd = JOptionPane.showInputDialog("請輸入密碼");
if (userName.equals("admin") && pwd.equals("123456")) {
JOptionPane.showConfirmDialog(null, "登陸成功");
break;
} else {
a++;
JOptionPane.showMessageDialog(null, "你錯誤輸入:" + a + "次");
if (a == 3) {
JOptionPane.showMessageDialog(null, "你錯誤輸入超過3次:卡被吞");
}
}
}
//使用了boolean來判斷
// int a = 1;
// boolean login = false;
// while(a<=3){
// String Username = JOptionPane.showInputDialog("請輸入卡號");
// String pwd = JOptionPane.showInputDialog("請輸入密碼");
// if(Username.equals("123")&&pwd.equals("456")){
// login = true;
// break;
// }else{
// a++;
// JOptionPane.showMessageDialog(null, "登陸失敗了:"+(a-1)+"次");
// }
// }
// if(login == true){
// JOptionPane.showMessageDialog(null, "登陸成功!");
// }else{
// JOptionPane.showMessageDialog(null, "3次失敗,登錄失敗,吞卡請找銀行!");
// }
}
}
輸入一個數求階乘:
package HomeWork;
import javax.swing.JOptionPane;
public class Factorial {
public static void main(String[] args) {
// TODO Auto-generated method stub
String x = JOptionPane.showInputDialog("輸入一個數求階乘!");
int num = Integer.parseInt(x);
int sum = 1;
for (int i = 1; i <= num; i++) {
sum = sum * i;
}
JOptionPane.showMessageDialog(null, "答案是:"+sum);
}
}
判斷是否爲素數:
package Demo;
import javax.swing.JOptionPane;
public class 只能被1和本身整除的數字_素數 {
public static void main(String[] args) {
String num = JOptionPane.showInputDialog("輸入判斷是否,只能被1和本身整除的數字,最小的素數是2");
int x = Integer.parseInt(num);
boolean YesOrNo = false;
for (int i = 2; i < x; i++) {
if(x % i != 0){
YesOrNo = true;
}else{
YesOrNo = false;
break;
}
}
if(YesOrNo == true || x==2 ){
JOptionPane.showMessageDialog(null, "是");
}
else{
JOptionPane.showMessageDialog(null, "不是");
}
}
}
二進制轉化成十進制:
package Demo;
import javax.swing.JOptionPane;
public class 二進制轉化成十進制 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String y = JOptionPane.showInputDialog("你要輸入的二進制數是");
if(y.matches("[0,1]{1,}")){
int a = 1;
int sum = 0;
int shu = Integer.parseInt(y);
while(shu != 0){
sum = sum + shu % 10 * a;
shu = shu/10;
a = a * 2;
}System.out.println(sum);
}else {
JOptionPane.showMessageDialog(null, "請輸入二進制數:0或者1");
}
}
}
for循環:
for循環執行的次數是在執行前就確定的。語法格式如下
for(初始化; 布爾表達式; 更新) {
//代碼語句
}
關於for循環有以下幾點說明:
最先執行初始化步驟。可以聲明並初始化一個或多個循環控制變量,也可以是空語句。
然後,檢測布爾表達式的值。如果爲true,循環體被執行。如果爲false,循環終止,開始執行循環體後面的語句。
執行一次循環後,更新循環控制變量。
再次檢測布爾表達式。循環執行上面的過程。
do…while循環
對於while語句而言,如果不滿足條件,則不能進入循環。但有時候我們需要即使不滿足條件,也至少執行一次。
do…while循環和while循環相似,不同的是,do…while循環至少會執行一次。
do {
//代碼語句
}while(布爾表達式);
注意:布爾表達式在循環體的後面,所以語句塊在檢測布爾表達式之前已經執行了。 如果布爾表達式的值爲true,則語句塊一直執行,直到布爾表達式的值爲false。
while循環
while是最基本的循環,它的結構爲:
while( 布爾表達式 ) {
//循環內容
}
只要布爾表達式爲true,循環體會一直執行下去。
break關鍵字
break主要用在循環語句或者switch語句中,用來跳出整個語句塊。
break跳出最裏層的循環,並且繼續執行該循環下面的語句。
continue關鍵字
continue適用於任何循環控制結構中。作用是讓程序立刻跳轉到下一次循環的迭代。
在for循環中,continue語句使程序立即跳轉到更新語句。
在while或者do…while循環中,程序立即跳轉到布爾表達式的判斷語句。
產生隨機數
int a = (int)(Math.random())在0-1之間,可能是0但不可能是1。