Java基本语法----流程控制02
基础练习1. if-else 练习2. switch 练习3. for 循环4. while 循环5. do ... while 循环
基础练习
1. if-else 练习
赌数游戏 提供三个1-6的随机数,作为掷骰子得到的点数。如果各个点数相同,则为豹子。 如果三个骰子点数和,小于或等于9,则为“小”。 如果三个骰子点数和,大于9,则为“大”。 用户随机选择:押大、押小或者押豹子。通过判断,输出客户是否押正确。
public static void main(String
[] args
){
while (true){
Random rand
= new Random();
int a
= rand
.nextInt(6) + 1;
int b
= rand
.nextInt(6) + 1;
int c
= rand
.nextInt(6) + 1;
String result
;
Scanner sc
= new Scanner(System
.in
);
System
.out
.println("请下注(大/小/豹子):");
String size
= sc
.next();
System
.out
.println("开出的骰子数分别是:"+ a
+","+ b
+","+ c
);
int sum
= a
+ b
+ c
;
if (a
== b
&& b
== c
){
result
= "豹子";
}else if (sum
<= 9){
result
= "小";
}else {
result
= "大";
}
if (size
.equals(result
)){
System
.out
.println("恭喜你,猜中了!");
System
.out
.println("Game Over!");
break;
}else {
System
.out
.println("很遗憾,没有猜中,再接再厉");
continue;
}
}
}
假设你想开发一个玩彩票的游戏,程序随机地产生一个两位数的彩票,提示用户输入 一个两位数,然后按照下面的规则判定用户是否能赢。
如果用户输入的数匹配彩票的实际顺序,奖金10 000美元。如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金 3 000美元。如果用户输入的一个数字仅满足顺序情况下匹配彩票的一个数字,奖金1 000美元。如果用户输入的一个数字仅满足非顺序情况下匹配彩票的一个数字,奖金500美元。如果用户输入的数字没有匹配任何一个数字,则彩票作废。
public static void main(String
[] args
){
int lotteryNum
= (int)(Math
.random() * 90 + 10);
Scanner sc
= new Scanner(System
.in
);
System
.out
.println("请输入第一个数:");
int num1
= sc
.nextInt();
System
.out
.println("请输入第二个数:");
int num2
= sc
.nextInt();
if ((num1
*10 + num2
) == lotteryNum
){
System
.out
.println("奖励10000美元");
}else if (num1
== lotteryNum
%10 && num2
== lotteryNum
/10 ){
System
.out
.println("奖励3000美元");
}else if (num1
== lotteryNum
/10 || num2
== lotteryNum
%10){
System
.out
.println("奖励1000美元");
}else if (num1
== lotteryNum
%10 || num2
== lotteryNum
/10){
System
.out
.println("奖励500美元");
} else {
System
.out
.println("很抱歉,你没有中奖!");
}
System
.out
.println("开出的彩票号码为:"+ lotteryNum
);
}
编写程序:由键盘输入三个整数分别存入变量num1、num2、num3, 对它们进行排序,并且从小到大输出。
public static void main(String
[] args
){
Scanner sc
= new Scanner(System
.in
);
System
.out
.println("请输入第一个数:");
int num1
= sc
.nextInt();
System
.out
.println("请输入第二个数:");
int num2
= sc
.nextInt();
System
.out
.println("请输入第三个数:");
int num3
= sc
.nextInt();
int temp
= 0;
if (num1
> num2
){
temp
= num1
;
num1
= num2
;
num2
= temp
;
}
if (num2
> num3
){
temp
= num2
;
num2
= num3
;
num3
= temp
;
}
if (num1
> num2
){
temp
= num1
;
num1
= num2
;
num2
= temp
;
}
System
.out
.println("从小到大输出为:"+ num1
+"--"+ num2
+"--"+ num3
);
}
2. switch 练习
使用 switch 把小写类型的 char型转为大写。只转换 a, b, c, d, e. 其它的输 出 “other”。 提示:String word = scan.next(); char c = word.charAt(0);
public static void main(String
[] args
) {
Scanner sc
= new Scanner(System
.in
);
System
.out
.println("输入你想转换的小写类型:");
String word
= sc
.next();
char c
= word
.charAt(0);
switch (c
){
case 'a':
System
.out
.println("A");
break;
case 'b':
System
.out
.println("B");
break;
case 'c':
System
.out
.println("C");
break;
case 'd':
System
.out
.println("D");
break;
case 'e':
System
.out
.println("E");
break;
default:
System
.out
.println("other");
break;
}
}
编写程序:从键盘上读入一个学生成绩,存放在变量score中,根据score的值输出其对应的成绩等级: score>=90 等级:A 70=<score<90 等级:B 60=<score<70 等级:C score<60 等级:D
public static void main(String
[] args
){
while (true){
Scanner sc
= new Scanner(System
.in
);
System
.out
.println("请输入成绩:");
double score
= sc
.nextDouble();
int grade
= (int) (score
/10);
if (score
< 0 || score
> 100){
System
.out
.println("成绩输入有误,请重新输入!");
continue;
}else {
switch (grade
){
case 10:
case 9:
System
.out
.println("等级为A");
break;
case 8:
case 7:
System
.out
.println("等级为B");
break;
case 6:
System
.out
.println("等级为C");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System
.out
.println("等级为D");
break;
}
}
}
}
3. for 循环
打印如下的图形:三角形
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
public static void main(String
[] args
){
for (int i
= 1; i
<= 13; i
++) {
if (i
< 9){
for (int j
= 1; j
<= i
; j
++) {
if (i
%2 != 0){
System
.out
.print("* ");
}
}
System
.out
.println();
}else {
for (int k
= 1;k
<=14-i
;k
++){
if (i
%2 != 0){
System
.out
.print("* ");
}
}
System
.out
.println();
}
}
}
打印1~100之间所有奇数的和打印1~100之间所有是7的倍数的整数的个数及总和(体会设置计数 器的思想)输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数 字立方和等于其本身。 例如: 153 = 111 + 333 + 555
public static void main(String
[] args
){
int sum
= 0;
for (int i
= 1;i
<= 100;i
++){
if (i
%2 != 0){
sum
+= i
;
}
}
System
.out
.println("奇数和为:"+ sum
);
int sum1
= 0;
int count
= 0;
for (int i
= 1;i
<=100;i
++){
if (i
%7 == 0){
sum1
+= i
;
count
++;
}
}
System
.out
.println("总和:"+ sum1
);
System
.out
.println("个数:"+ count
);
System
.out
.println("所有水仙花的值分别是:");
for (int i
= 100;i
<1000;i
++){
int a
= i
/100;
int b
= i
/10%10;
int c
= i
%10;
if ((a
*a
*a
+ b
*b
*b
+ c
*c
*c
) == i
){
System
.out
.println(i
);
}
}
}
效果截图:
4. while 循环
随机生成一个100以内的数,猜数字游戏: 从键盘输入数,如果大了提示,大了,如果小了,提示小了,如果对了,就不再猜了,并统计一共猜了多少次?
public static void main(String
[] args
){
Random rand
= new Random();
int result
= rand
.nextInt(100);
System
.out
.println(result
);
int count
= 0;
while (true){
Scanner sc
= new Scanner(System
.in
);
System
.out
.println("请输入你猜的数:");
int num
= sc
.nextInt();
if (num
> result
){
System
.out
.println("猜大了,再猜");
count
++;
continue;
}else if (num
< result
){
System
.out
.println("猜小了,再猜");
count
++;
continue;
}else {
System
.out
.println("恭喜你,猜对了");
count
++;
break;
}
}
System
.out
.println("一个猜了"+ count
+"次");
}
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入 为0时结束程序
public static void main(String
[] args
){
Scanner sc
= new Scanner(System
.in
);
System
.out
.println("请输入一个整数:");
int posNum
= 0;
int negNum
= 0;
while (true){
int num
= sc
.nextInt();
if (num
> 0){
posNum
++;
}else if (num
< 0){
negNum
++;
}else
break;
}
System
.out
.println("正数的个数为:"+ posNum
);
System
.out
.println("负数的个数为:"+ negNum
);
}
5. do … while 循环
山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?
public static void main(String
[] args
){
int water
= 15;
int l
= 0;
do {
water
+= 5;
l
++;
}while (water
< 50);
System
.out
.println(l
+"次,才能挑满水");
}