练习:20

原题为:用户登录系统时需要输入用户名和密码,系统对用户输入的用户名和密码进行验证。验证最多三次,超过三次则程序结束。根据验证结果的不同(信息匹配/信息不匹配/三次都不匹配),执行不同的操作,假设正确的用户名和密码分别为:Jim和123456.

下面是分别用while,do-while,for循环写出来的源代码(可能因循环结构不同,因此i的数值出现了偏差):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import java.util.*;
public class P137_3{
public static void main (String[]args){
Scanner input = new Scanner(System.in);
String id ;//录入ID
int press;//录入密码
for ( int i = 2; i>=0; i-- ){//定义表达式
System.out.println("请输入用户名(for循环):");
id = input.next();//录入用户名
System.out.println("请输入密码:");
press = input.nextInt();//录入密码
if ("Jim".equals(id) && press == 123456 ){//若输入正确,提示欢迎,并退出循环
System.out.println("欢迎登录Shopping系统!");
break;
}
else if ( !"Jim".equals(id) || press != 123456 ) {//录入错误,则提示错误,并提示剩余次数
System.out.println("输入错误!您还有"+i+"次输入机会!");
if ( i==0 ){//当i等于0时,提示3次输入均出错,并结束循环
System.out.println("******************");
System.out.println("对不起,您3次均输入错误!");
}
continue;
}
}
System.out.println("***********while循环开始*******");
int i = 3;
while ( i>0 ){
System.out.println("请输入用户名(while循环):");
id = input.next();//录入用户名
System.out.println("请输入密码:");
press = input.nextInt();//录入密码
if ("Jim".equals(id) && press == 123456 ){//若输入正确,提示欢迎,并退出循环
System.out.println("欢迎登录Shopping系统!");
break;
}
else if ( !"Jim".equals(id) || press != 123456 ) {//录入错误,则提示错误,并提示剩余次数
i = i-1;
System.out.println("输入错误!您还有"+i+"次输入机会!");
if ( i==0 ){//当i等于0时,提示3次输入均出错,并结束循环
System.out.println("******************");
System.out.println("对不起,您3次均输入错误!");
}
continue;
}
i--;
}
System.out.println("***********do-while循环开始*******");
do{System.out.println("请输入用户名(do-while循环):");
id = input.next();//录入用户名
System.out.println("请输入密码:");
press = input.nextInt();//录入密码
if ("Jim".equals(id) && press == 123456 ){//若输入正确,提示欢迎,并退出循环
System.out.println("欢迎登录Shopping系统!");
break;
}
else if ( !"Jim".equals(id) || press != 123456 ) {//录入错误,则提示错误,并提示剩余次数
i = i-1;
System.out.println("输入错误!您还有"+i+"次输入机会!");
if ( i==0 ){//当i等于0时,提示3次输入均出错,并结束循环
System.out.println("******************");
System.out.println("对不起,您3次均输入错误!");
}
continue;
}
} while ( i <= 3 && i>0 );
}
}

练习:19

原题目:
从键盘输入一个整数,当输入1~7时,显示下面对应的英文星期名称和缩写.
1:MON 2:TUE 3:WED 4:THU 5:FRI 6:SAT 7:SUN
输入其他数字时提示用户重新输入,输入数字0时程序结束.

分别用了while,do-while,for循环结构来做这道题,源代码如下(在使用for循环的时候,假设for循环的条件也是0,那么循环将不会被执行,因此若需要停止for循环,输入10即可):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import java.util.*;
public class P120_5{
    public static void main (String[]args){
        Scanner input = new Scanner (System.in);
        int num = 1 ;//定义用户输入的数字
        int day = 0 ;//定义天数
        while ( num!=0 ){ //定义当用户输入0时,结束循环
            System.out.println("请输入数字1~7(输入0结束)(while循环):");
            num = input.nextInt();//录入用户输入的数字
            day = num ; //将num的值赋给day
            if ( num =1 ){ //当用户输入的数字正确时,提示文字,否则提示错误,执行下一次循环
                switch (day){
                case 1 :
                    System.out.println("今天是:MON");
                    break;
                case 2 :
                    System.out.println("今天是:TUE");
                    break;
                case 3 :
                    System.out.println("今天是:WED");
                    break;
                case 4 :
                    System.out.println("今天是:THU");
                    break;
                case 5 :
                    System.out.println("今天是:FRI");
                    break;
                case 6 :
                    System.out.println("今天是:SAT");
                    break;
                case 7 :
                    System.out.println("今天是:SUN");
                    break;
            }
                }
                else if ( num !=0 ) {//当值为0时,不再执行错误的提示
                System.out.println("*************************");
                System.out.println("数字输入错误,请重新输入!");
                System.out.println("*************************");
                continue; //跳转标签,当条件不符合本次循环时,跳出本次循环,执行下一次循环
                }
            }
        System.out.println("while循环结束!下面是do-while循环结构所写的代码");
        System.out.println("***********do-while循环开始**************");
        do {
            System.out.println("请输入数字1~7(输入0结束)(do-while循环):");
            num = input.nextInt();//录入用户输入的数字
            day = num ; //将num的值赋给day
            if ( num =1 ){ //当用户输入的数字正确时,提示文字,否则提示错误,执行下一次循环
                switch (day){
                case 1 :
                    System.out.println("今天是:MON");
                    break;
                case 2 :
                    System.out.println("今天是:TUE");
                    break;
                case 3 :
                    System.out.println("今天是:WED");
                    break;
                case 4 :
                    System.out.println("今天是:THU");
                    break;
                case 5 :
                    System.out.println("今天是:FRI");
                    break;
                case 6 :
                    System.out.println("今天是:SAT");
                    break;
                case 7 :
                    System.out.println("今天是:SUN");
                    break;
            }
                }
                else if ( num !=0 ) {//当值为0时,不再执行错误的提示
                System.out.println("*************************");
                System.out.println("数字输入错误,请重新输入!");
                System.out.println("*************************");
                continue; //跳转标签,当条件不符合本次循环时,跳出本次循环,执行下一次循环
                }
            } while ( num!=0 );
        System.out.println("*************************");
        System.out.println("do-while循环结束!下面是for循环结构所写的代码:");
        System.out.println("*************************");
        for ( ; num!=10; ){
            System.out.println("请输入数字1~7(输入10结束)(for循环):");
            num = input.nextInt();//录入用户输入的数字
            day = num ; //将num的值赋给day
            if ( num =1 ){ //当用户输入的数字正确时,提示文字,否则提示错误,执行下一次循环
                switch (day){
                case 1 :
                    System.out.println("今天是:MON");
                    break;
                case 2 :
                    System.out.println("今天是:TUE");
                    break;
                case 3 :
                    System.out.println("今天是:WED");
                    break;
                case 4 :
                    System.out.println("今天是:THU");
                    break;
                case 5 :
                    System.out.println("今天是:FRI");
                    break;
                case 6 :
                    System.out.println("今天是:SAT");
                    break;
                case 7 :
                    System.out.println("今天是:SUN");
                    break;
            }
                }
                else if ( num !=10 ) {//当值为0时,不再执行错误的提示
                System.out.println("*************************");
                System.out.println("数字输入错误,请重新输入!");
                System.out.println("*************************");
                continue; //跳转标签,当条件不符合本次循环时,跳出本次循环,执行下一次循环
                }
        }
        System.out.println("for循环结束!");
        System.out.println("*******************");
        System.out.println("程序结束!");
        }
    }

练习:18

此文由《练习16》演变而来,只不过最大的差别在于:此练习使用了switch选择结构,while循环结构,do-while循环结构.

原题为:
刘珊珊参加了ACCP的学习,她父母承诺:
如果考试成绩==100分,父亲给她买辆车;
如果考试成绩>=90分,母亲给她买台笔记本电脑;
如果考试成绩>=60分,母亲给她买部手机;
如果考试成绩<60分,没有礼物。

参考源代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
 * 综合了switch结构,随机数产生(double类型),while循环结构
 * 循环写错了走入了死循环,是因为变量名写错了.
 */
import java.util.Scanner;
public class P96_4{
    public static void main (String[]args){
        Scanner input = new Scanner (System.in);
        System.out.println("请输入考试成绩:");
        int liuScore = input.nextInt();
        if ( liuScore <= 100 && liuScore >= 0 ){
            switch (liuScore/10) { //switch来对成绩进行分解
            case 10 :
                System.out.println("恭喜获得一辆车");
                break;
            case 9 :
                System.out.println("恭喜获得笔记本一台");
                break;
            case 8 :
                System.out.println("获得手机一台");
                break;
            case 7 :
                System.out.println("获得手机一台");
                break;
            case 6 :
                System.out.println("获得手机一台");
                break;
            case 5 :
                System.out.println("没有奖励");
                break;
            case 4 :
                System.out.println("没有奖励");
                break;
            case 3 :
                System.out.println("没有奖励");
                break;
            case 2 :
                System.out.println("没有奖励");
                break;
            case 1 :
                System.out.println("没有奖励");
                break;
            }
        } else {
           
        }
        System.out.println("******************************");
        System.out.println("请输入幸运数字(10以内):");
        int num = input.nextInt(); //键盘录入
        int random = (int)( Math.random()*10 ); //随机输出数字
        if ( num == random  ){
            System.out.println("恭喜,你获得了神秘大礼!");
        } else {
            System.out.println("抱歉,你没有获奖");
        }
        System.out.println("******************************");
        System.out.println("请输入一个数字(100以内正整数)(以所输入的数字开始循环,到100为止):");
        int num1 = input.nextInt() ; //从键盘录入数字
        while ( num1 <= 100 ) { //定义循环的最多次数
            System.out.println("这是我的第一个循环结构的"+num1+"遍循环");//输出循环
            num1++;//刚还是写了两次死循环,是因为这里的变量写错了..
        }
        System.out.println("********************");//do-while循环结构开始
        System.out.println("请输入一个数字(正整数),以检测循环:");//提示输入
        int num2 = input.nextInt() ;
        do { //do结构开始
            System.out.println("do循环结构开始了,第"+num2+"遍do循环");
            num2++;
        }
        while ( num2 <= 15 ); //判断条件是否正确
        System.out.println("**************************");
        System.out.println("程序运行结束!");
        }
    }