练习1:使用for循环,输出5遍HelloWorld
class Hello01{
public static void main(String[] args){
/*System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld");
System.out.println("HelloWorld"); */
/*
练习1:使用for循环,输出5遍HelloWorld
下面for代码的执行过程:
先执行表达式1,完成变量i的初始值,也就是i=1
然后执行表达式2,完成循环条件判断,其实也就是判断1<=5,结果为true,则执行循环体
接下来执行循环体,输出:第1遍HelloWorld
然后执行表达式3,完成变量i的值更改,也就是i=2
继续执行表达式2,完成循环条件判断,也就是2<=5,结果为true,则继续执行循环
循环体中输出:第2遍HelloWorld
然后执行表达式3完成变量值的更改,也就是i=3
继续执行表达式2完成循环条件判断,其实也就是判断3<=5,结果为true,则执行循环体
循环体中输出:第3遍HelloWorld
然后执行表达式3完成变量值的更改,也就是i=4
继续执行表达式2完成循环条件判断,其实也就是判断4<=5,结果为true,则执行循环体
循环体中输出:第4遍HelloWorld
然后执行表达式3完成变量值的更改,也就是i=5
继续执行表达式2完成循环条件判断,其实也就是判断5<=5,结果为true,则执行循环体
循环体中输出:第5遍HelloWorld
然后执行表达式3完成变量值的更改,也就是i=6
继续执行表达式2完成循环条件判断,其实也就是判断6<=5,结果为false,则接收当前整个for循环,执行for循环外面的语句
*/
for(int i = 1;i <= 5;i++){
System.out.println("第" + i + "遍HelloWorld");
}
}
}
练习2:使用for循环完成,输出10----20中的每个数
class For02{
public static void main(String[] args){
//练习2:使用for循环完成,输出10----20中的每个数
/*for(int i = 10;i <= 20;i++){
System.out.println(i);
}*/
//练习3:使用for循环完成,输出所有的三位数
//练习4:使用for循环完成,输出1---50中所有的偶数
//第1种方法:
/*for(int i = 1;i <= 50;i++){
//判断,当前变量i的值,如果是偶数则输出
if(i % 2 == 0){
System.out.println(i);
}
}*/
//第2种方法:执行速度相对更快或者效率高
for(int i = 2;i <= 50;i += 2){
System.out.println(i);
}
//练习5:使用for循环完成,输出1001---2000范围内能被19整除的数
}
}
for循环的注意事项
class For03{
public static void main(String[] args){
//注意:1.for循环中的三个表达式都可以省略,但是分号必须编写,则出现死循环也叫做无限循环,在DOS命令窗口中按Ctrl + C强行终止程序运行
/*for(;;){
System.out.println("OK");
}*/
//注意:2.当省略表达式1,则出现编译错误,解决办法:在循环上面编写表达式1的声明并赋值
/*int i = 1;
for(;i <= 5;i++){
System.out.println(i);
}*/
//注意:3.当省略表达式2,则出现死循环也就是无限循环,也就是当表达式2省略时,循环条件默认为true
/*for(byte i = 1;;i++){
System.out.println(i);
}*/
//注意:4.当省略表达式3,则出现死循环也叫做无限循环,解决办法:将表达式3编写在循环体中的最后一条语句
/*for(int i = 1;i <= 5;){
System.out.println(i);
i++;
}*/
//注意:5.当在表达式1中声明变量,如果在循环外面使用该变量,则出现编译错误,解决办法:将表达式1编写在循环上面声明,也叫做将表达式1的声明和赋值都编写在循环上面,也就是注意事项2的写法
int i;
for(i = 1;i <= 5;i++){
System.out.println(i);
}
System.out.println(i); //6
}
}
练习6:使用while循环完成,输出1---5中的每个数
class While04{
public static void main(String[] args){
//练习6:使用while循环完成,输出1---5中的每个数
/*for(int i = 1;i <= 5;i++){
System.out.println(i);
}*/
/*int i = 1;
while(i <= 5){
System.out.println(i);
i++;
}*/
//练习7:使用while循环完成,输出500---600中的每个数
//练习8:使用while循环完成,输出11---20之间所有的奇数
//第1种方法:
/*int i = 11;
while(i <= 20){
//判断当前变量i的值,如果是奇数则输出i的值
if(i % 2 != 0){
System.out.println(i);
}
i++;
}*/
//第2种方法:相对执行速度更快或者效率高
/*int i = 11;
while(i <= 20){
System.out.println(i);
i += 2;
}*/
//以下代码并不能实现练习8的效果,原因:当i的值为12时,循环条件为false,因此就结束while循环
/*int i = 11;
while(i <= 20 && i % 2 != 0){
System.out.println(i);
i++;
}*/
//练习9:使用while循环完成,输出2345----6789范围内能被300整除的数
int i = 2345;
while(i <= 6789){
//判断当前变量i的值,如果能被300整除,则输出当前i的值
if(i % 300 == 0){
System.out.println(i);
}
i++;
}
}
}
练习10:使用do while循环完成,输出6---10中的每个数
class DoWhile05{
public static void main(String[] args){
//练习10:使用do while循环完成,输出6---10中的每个数
int i = 6;
do{
System.out.println(i);
i++;
}while(i <= 10);
//练习11:使用do while循环完成,输出30----50中的每个数
//练习12:使用do while循环完成,输出405---555范围内,所有能被18整除的数
}
}
练习13:输出如下效果,要求每次输出一个*
**********
**********
**********
**********
class For06{
public static void main(String[] args){
/*
练习13:输出如下效果,要求每次输出一个*
**********
**********
**********
**********
分析得到:1.该题共计要输出40个*,因此按要求则需要编写40个输出语句,则需要使用循环完成
2.因为循环次数固定,则建议优先使用for循环完成
*/
//第一种方法:使用一个for循环完成
/*for(int i = 1;i <= 40;i++){
System.out.print("*");
//判断,当变量i的值为10 或者i的值为20 或者i的值为30 或者i的值为40,则换一行,其实也就是i的值是10的倍数则换一行
if(i % 10 == 0){ //条件也可以编写为i == 10 || i == 20 || i == 30 || i == 40
System.out.println();
}
}*/
/*
第二种方法:使用双重循环完成
总结:1.当该题中既有行数也有列数时,则建议使用双重循环
2.外层循环控制行数,比如:有4行,则使用i表示,也就是从1---4,则编写为for(int i = 1;i <= 4;i++){}
3.内层循环控制每行的列数,比如:有10列,则使用j表示,也就是从1---10,则编写为for(int j = 1;j <= 10;j++){}
*/
for(int i = 1;i <= 4;i++){
//输出一行的10个*
for(int j = 1;j <= 10;j++){
System.out.print("*");
}
//换一行
System.out.println();
}
}
}
练习14:输入一批整数,计算所有数的和,当输入0时则程序结束
import java.util.*;
class DoWhile07{
public static void main(String[] args){
/*
练习14:输入一批整数,计算所有数的和,当输入0时则程序结束
分析得到:1.该题求和
2.假如输入数0 ,则程序结束,和是0
假如输入数10 5 26 -1 0,则程序结束,和是40
假如输入数88 0,则程序结束,和是88
.......
3.因此得到该题的一批整数,并没有要求是多少个
也就是说一批整数,也需要一个数一个数的输入
4.操作步骤:输入一个整数 判断是否为0 不为0则累加求和
*/
int sum = 0; //sum表示存放所有数的和
do{
//第一步:键盘输入一个整数,存放在变量中
Scanner input = new Scanner(System.in);
System.out.print("请输入一个整数:");
int num = input.nextInt();
//第二步:判断,当前变量num中的值是否为0
if(num == 0){
break; //表示中断,当在循环中遇到break,则结束当前整个循环,执行循环外面的语句
}
//当没有执行if里面,说明num也就不是0,则累加求和
sum += num; //sum = 88
}while(true);
System.out.println("所有数的和:" + sum);
}
}
class Test02{
public static void main(String[] args){
for(int i = 1;i <= 40;i++){
System.out.print("*");
if(i % 10 == 0){//i == 10 || i == 20 || i == 30 || i == 40
System.out.println();
}
}
System.out.println();
for(int i = 1;i <= 4;i++){
for(int j = 1;j <= 10;j++){
System.out.print("*");
}
System.out.println();
}
}
}
import java.util.Scanner;
class Test03{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
boolean b = true;
int sum = 0;
do{
System.out.print("请输入整数:");
int num = scan.nextInt();
sum += num;
if(num == 0){
b = false;
}
}while(b);
System.out.println(sum);
}
}
3.假如张三进行Java机试题测试,
如果得100分则奖励一台笔记本电脑,
如果得90分以上则奖励一个移动硬盘,
如果得60分以上则奖励一个鼠标,
否则没有任何奖励
要求:使用两种方法完成(多重if和switch case两种方法完成)
import java.util.*;
class Homework03{
public static void main(String[] args){
/*3.假如张三进行Java机试题测试,
如果得100分则奖励一台笔记本电脑,
如果得90分以上则奖励一个移动硬盘,
如果得60分以上则奖励一个鼠标,
否则没有任何奖励
要求:使用两种方法完成(多重if和switch case两种方法完成)
*/
//第一步:键盘输入张三的成绩,存放在变量中
Scanner input = new Scanner(System.in);
System.out.print("请输入张三的成绩:");
double score = input.nextDouble();
//第二步:判断成绩score变量中的值是否在[0,100]范围内
//第1种方法:
/*if(score >= 0 && score <= 100){
//第三步:判断成绩score中的值,来得到具体的奖励
if(score == 100){
System.out.println("奖励笔记本");
}else if(score >= 90){
System.out.println("奖励移动硬盘");
}else if(score >=60){
System.out.println("奖励鼠标");
}else{
System.out.println("对不起没有任何奖励!");
}
}else{
System.out.println("成绩输入有误!");
}*/
//第2种方法
if(score >= 0 && score <= 100){
switch((int)score / 10){
case 10:
System.out.println("奖励笔记本电脑");
break;
case 9: //其实也就是在[90,99]
System.out.println("奖励移动硬盘");
break;
case 8:
case 7:
case 6:
System.out.println("奖励鼠标");
break;
default:
System.out.println("对不起没有任何奖励!");
}
}else{
System.out.println("成绩输入有误!");
}
}
}
4.打印九九乘法表,并且要求按照格式打印
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
......
1*9=9 2*9=18 3*9=27 4*9=36 ..... 9*9=81
class Homework04{
public static void main(String[] args){
/*
4.打印九九乘法表,并且要求按照格式打印
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
......
1*9=9 2*9=18 3*9=27 4*9=36 ..... 9*9=81
分析得到:1.该题既有行数也有列数,则使用双重循环完成
2.外层循环控制行数,则使用i表示,比如编写为:
for(int i = 1;i <= 9;i++){}
3.内层循环控制每行的列数,则使用j表示
第1行共计有1列
第2行共计有2列
第3行共计有3列
......
第9行共计有9列
因此得到:列数应该从1到当前行数的值,也就是i
for(int j = 1;j <= i;j++){}
*/
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();
}
}
}