1.求1-100的和
package test.disanzhang2;
public class Test1 {
public static void main(String[] args) {
int sum=0;
/*for循环结构语法结构:
for(初始表达式1;循环条件表达式2;迭代表达式3){
循环体语句
}
执行流程:1.执行初始化表示式1
2.判断循环条件表达式2
3.如果条件成立,执行循环体语句块
4.执行迭代表达式3
*/
for(int i=0;i<=100;i++){
sum+=i;
}
System.out.println("1-100的和为:"+sum);
}
}
输出的结果为:
1-100的和为:5050
2.打印1-100偶数的和
方法一:
package test.disanzhang2;
public class Test2 {
public static void main(String[] args) {
int ousum=0;
//这里可以从i=0开始,每次对i进行递加2,然后输出偶数的和
for(int i=0;i<=100;i+=2){
ousum+=i;
}
System.out.println("1-100的偶数和为:"+ousum);
}
}
方法二:
package test.disanzhang2;
public class Test22 {
public static void main(String[] args) {
int sum=0;
//通过for循环中嵌套if条件判断语句,判断数是否是偶数,如果是偶数进行相加
for(int i=0;i<=100;i++){
if(i%2==0){
sum+=i;
}
}
System.out.println("1-100的偶数和为:"+sum);
}
}
输出的结果为:
1-100的偶数和为:2550
3.从键盘上输入整数,输入0结束,统计输入的整数、负数的个数
package test.disanzhang2;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int numzheng=0;
int numfu=0;
/*while循环的语法结构:
while(条件表达式){
循环条件语句块
}
执行流程:
1.先判断循环条件
2.条件成立,执行循环语句块
3.回到1
4.直到条件不成立,结束while循环
*/
/*while语句要注意的是当条件为true时,里面肯定要写
break语句,否则会发生陷入死循环的现象。在本题中我们
可以知道是当输入的数字为0时,此循环是结束的。
*/
while(true) {
System.out.println("请输入整数:");
int num = sc.nextInt();
if (num == 0) {
System.out.println("结束");
break;//此break要注意,不能丢失,否则陷入死循环
} else if (num > 0) {
numzheng++;
} else if (num < 0) {
numfu++;
}
}
System.out.println("正数的个数为:"+numzheng+"负数的个数为:"+numfu);
}
}
输出的结果为:
请输入整数:
5
请输入整数:
-1
请输入整数:
6
请输入整数:
-21
请输入整数:
0
结束
正数的个数为:2负数的个数为:2
4.随机生成一个100以内的数,猜数字游戏。从键盘上输入数,如果大了会提示大了,如果小了会提示小了,如果对了就不要再猜了,并统计猜了多少次。
package test.disanzhang2;
//导入产生随机数的包
import java.util.Random;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
int i = 0;
//创建随机数的对象
Random rand = new Random();
//利用对象获取数据格式
int num = rand.nextInt(100);
System.out.println("随机数为:" + num);
Scanner sc = new Scanner(System.in);
int guess=0;
/*do...while循环语句的语法结构:
do{
循环体语句块
}whie(条件表达式);
执行过程:
1.先条件执行一次循环体语句块
2.再判断循环条件
3.条件成立,再次执行循环体语句块
4.回到2
5.直到条件不成立,结束do...while循环
注意:执行一次循环体后,再判断条件,继续下一次循环体,
因此do...while循环至少执行一次循环体 */
do {
System.out.println("请输入用户猜的数:");
guess=sc.nextInt();
System.out.println("猜的数为:" + guess);
i++;
if (guess > num) {
System.out.println("猜大了");
} else if (guess < num) {
System.out.println("猜小了");
} else {
System.out.println("猜对了");
}
} while (guess!= num);
System.out.println("猜了" + i + "次才猜对");
}
}
输出的结果为:
随机数为:22
请输入用户猜的数:
50
猜的数为:50
猜大了
请输入用户猜的数:
20
猜的数为:20
猜小了
请输入用户猜的数:
21
猜的数为:21
猜小了
请输入用户猜的数:
22
猜的数为:22
猜对了
猜了4次才猜对
5.输出所有水仙花数,所谓水仙花数是指3位数,其各个位上数字的立方和等于其本身。
package test.disanzhang2;
public class Test5 {
public static void main(String[] args) {
//定义水仙花数的变量
int count=0;
for(int num=100;num<1000;num++){
//提取水仙花数的个,十,百位
int bai=num/100;
int shi=(num/10)%10;
int ge=num%10;
//如果满足各个位上数字平方和等于它本身,则为水仙花数
if(num==bai*bai*bai+shi*shi*shi+ge*ge*ge){
System.out.println("水仙花为:"+num);
count++;
}
}
System.out.println("水仙花数有"+count+"个");
}
}
输出的结果为:
水仙花为:153
水仙花为:370
水仙花为:371
水仙花为:407
水仙花数有4个
6.编写程序,从1循环到30且在每行打印一个值,另外在每个3的倍数行数上打印出"foo",在每行3的倍数行上打印出"biz",在每个7的倍数行上打印输出为"baz"。
package test.disanzhang2;
public class Test6 {
public static void main(String[] args) {
//利用for循环来遍历1-30
for(int i=1;i<=30;i++){
//for循环内层嵌套if-else if-else条件判断进行条件选择判断
if(i%3==0){
System.out.println("foo");
}
else if(i%5==0){
System.out.println("biz");
}
else if(i%7==0){
System.out.println("baz");
}
else{
System.out.println(i);
}
}
}
}
输出结果为:
1
2
foo
4
biz
foo
baz
8
foo
biz
11
foo
13
baz
foo
16
17
foo
19
biz
foo
22
23
foo
biz
26
foo
baz
29
foo
7.打印九九乘法表
package test.disanzhang2;
public class Test7 {
public static void main(String[] args) {
//打印九九乘法表
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}
}
}
输出的结果为:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
8.打印1-30间数,其中3,5,7的倍数不打印(本题用continue来做)
package test.disanzhang2;
public class Test8 {
public static void main(String[] args){
//利用for循环遍历1-30数字
for(int i=1;i<=30;i++){
//continue只能用于循环中,提前结束本次循环,继续下一次循环
if(i%3==0){
continue;
}
else if(i%5==0){
continue;
}
else if(i%7==0){
continue;
}
System.out.println(i);
}
}
}
输出的结果为:
1
2
4
8
11
13
16
17
19
22
23
26
29