一、逻辑条件
逻辑运算符有:
&&短路与;&;
||短路或;|;
^异或;同时有真有假才算真;
!非运算。
二、选择
if else语句的3个用法,单分支,双分支,多分支。可以进行各种条件的判断和选择。
switch的用法, 只能对整型,或者字符型判断,并且只能选择 相等
三、循环
3种循环结构。跟C里面一样,
do{ } while(逻辑条件);不知道循环次数,先执行一次,满足判断条件,则继续循环。
while(逻辑条件) { } 不知道循环次数,先判断条件,满足则执行。
for (初始化; 逻辑条件;步长) { } 可以清楚的知道循环次数的。
四、跳转
break语句是中断 当前循环。
continue语句是 结束本次循环,继续下次循环。
列子:
/*
*请查看JDK DOC文档中一个叫Math的类,它有一个random方法可以产生0-1之间的随机数。
*利用这个工具类,请实现一个猜数字程序。
*需求如下:生成一个50到100(不包含100)的随机数。接受用户输入的数字。
*让这两个数字比较,告诉用户猜大了,还是猜小了,还是猜对了。如果猜对了本次游戏结束。
*用户一共有5次机会。程序结束后,提示用户是否开始新的游戏
*(选择1开始,2,不玩了)如果用户选择了1,那么返回第一步,生成新的随机数,让用户猜。
*如果用户选择了2,那么感谢用户,整个程序结束掉。
*/
import java.util.Scanner;
public class Test10_4{
public static void main(String[] args){
int num,n,i;
Scanner scan = new Scanner(System.in);
do{
num = (int)(Math.random()*50)+50;//产生一个50到99之间的数字
System.out.println("请输入你猜的数字,取值范围为50 到99之间,你总共有5次机会!");
for(i = 4;i>=0;i--){
n = scan.nextInt();
if(n==num){
System.out.println("恭喜你猜对了!数字是:"+num);
break;
}
else if(n>num){
System.out.println("数字有点大!"+"你还有"+i+"次机会");
}
else{
System.out.println("数字有点小!"+"你还有"+i+"次机会");
}
}
System.out.println("\nGAME OVER\n继续请按1 退出请按2");
int flag=scan.nextInt();
if(flag == 2){
System.out.println("谢谢使用!");
return;
}
else if(flag == 1)
continue;
else
System.out.println("游戏重新开始:");
}while(true);
}
}
一个简单的银行ATM取款机程序:
import java.util.Scanner;
public class Bank{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int loadNumber = 0;
String user = null;
String password = null;
String tempPassword = null;
boolean load = false;
float money = 1000;
int choice = 0;
int imputMoney = 0;
//欢迎界面
System.out.println("欢迎使用幻想银行!");
//登陆模块
do{
loadNumber++;
if(loadNumber == 4){
System.out.println("你3次输入密码错误,卡被没收!\n请到柜台办理取卡业务!");
break;
}
System.out.println("请输入用户名:");
user = scan.next();
System.out.println("请输入密码:");
password = scan.next();
if(user.equals("t98") && password.equals("123456")){
load = true;
System.out.println("登陆成功!");
}
if(loadNumber != 3){
System.out.println("用户名或密码错误!您还有"+(3-loadNumber)+"次机会!");
}
}while(!load);//没有登陆成功继续登陆
while(load && choice != 5){
do{
//业务菜单
System.out.println("请选择业务:\n1、查询余额\n2、存钱\n3、取钱\n4、修改密码\n5、退出");
//用户选择业务
choice = scan.nextInt();
//业务操作
switch(choice){
case 1 : System.out.println("您的余额为"+money);break;
case 2 : {
System.out.println("请输入你要存的金额:为100的正整数!");
imputMoney=scan.nextInt();
if(imputMoney % 100 == 0 && imputMoney > 0){
System.out.println("存款成功!您存入金额为:"+imputMoney);
money += imputMoney;
}
else{
System.out.println("您存入金额为:"+imputMoney+"非法,无法处理!");
}
}break;
case 3 : {
System.out.println("请输入您要取款的金额:为100的正整数");
imputMoney=scan.nextInt();
if(imputMoney % 100 == 0 && imputMoney > 0 && imputMoney<=money){
System.out.println("取款成功!您取出的金额为:"+imputMoney);
money -= imputMoney;
}
else{
System.out.println("您取出的金额为:"+imputMoney+"非法,无法处理!");
}
}break;
case 4 :{
System.out.println("请输入您的原始密码:");
tempPassword = scan.next();
if(tempPassword.equals(password)){
System.out.println("密码正确,请输入您的新密码:");
tempPassword = scan.next();
System.out.println("请重新输入您的新密码:");
if(scan.next().equals(tempPassword)){
password = tempPassword;
System.out.println("修改成功!新密码为:"+password);
}
else{
System.out.println("2次输入不一致,无法处理!");
}
}
else{
System.out.println("您输入的密码错误,无法修改密码!");
}
}break;
case 5 : {
System.out.println("谢谢使用幻想银行,请收好你的卡片!");
}break;
default : {
System.out.println("您选择的业务不存在,请重新选择业务!");
}
}
}while(choice != 5);
}
}
}