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。