Java循环结构
While 循环
[Java] 纯文本查看 复制代码 while (布尔表达式){
//循环内容
}
只要布尔表达式为ture, 循环就会一直执行下去.
[Java] 纯文本查看 复制代码 public class Test{
public static void main(String args[]){
int x=10;
while (x<20){
System.out.print("value of x:");
x++;
System.out.println(x);
}
}
}
其中 while (x<20)为布尔表达式,后方的三行为循环执行内容,会持续执行.
do While 循环
[AppleScript] 纯文本查看 复制代码 do{
//代码语句
}while(布尔表达式);
执行语句块,然后判断布尔表达式,如果布尔表达式值为true,则语句块一直执行,直到布尔表达式的值为false. 对于while 语句来说,如果不满足条件则不能进行循环,但是在do while循环下,即使我们不满足条件,也至少执行一次.
[Java] 纯文本查看 复制代码 public class Test{
public static void main(String[]args){
int x=10;
do{
x++;
System.out.print(x);
System.out.print("\n");
}while(x<20);
}
}
do 之后的语句块被执行之后, 执行while判断 如果while判断结果为true, 语句块会继续执行. 如果判断语句为false.则结束.
for 循环
[Java] 纯文本查看 复制代码 for (初始化;布尔表达式;更新){
//代码语句
}
初始化: 可以申明一种类型,或者初始化一个或多个循环控制变量,也可以是空语句. 布尔表达式: 检测布尔表达式的值,如果为true,循环体被执行.如果为false,循环终止.(如果不满足条件不会执行和do while 不同和 while相同) 执行一次后,更新循环控制变量,再次检测布尔表达式. (for 循环在执行前,循环执行次数就会被确定) [Java] 纯文本查看 复制代码 public class Test{
public static void main(String []args){
for (int x=20;
x<20;
x++){
System.out.print("value of x:"+x);
System.out.print("\n");
}
}
}
//注意,第三块表达式后没有";", Java 增强for 循环
[AppleScript] 纯文本查看 复制代码 for(申明语句:表达式)
{
//代码句子
}
申明语句:表明行的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等. 表达式:表达式是要访问的数组名,或者是范围值为数组值得方法. [Java] 纯文本查看 复制代码 public class Test{
public static void main(String args[]){
int [] numbers={10,20,30,40,50};
for (int x:numbers){
System.out.print(x);
System.out.print(",");
}
}
} break 关键字break 用在循环语句中或者Switch 语句中,用来跳出整个语句块. Break 跳出最里层的循环,继续执行该循环下面的语句 [Java] 纯文本查看 复制代码 public class Test{
public static void main(String args[]){
int [] numbers={10,20,30,40,50};
for (int x:numbers){
System.out.print(x);
System.out.print(",");
if(x==30){
break;
}
}
}
} break 跳出后执行结果为40,50. continue关键字continue适用于任何循环控制结构,作用是让程序立即跳转到下一次循环迭代中.在for 循环中,continue语句使程序立即跳转到下一次循环中,而不执行此次循环的语句块. 在for循环语句中,continue语句让循环直接跳转到更新语句. 在while循环语句中,continue语句让循环直接跳转到布尔表达式. [Java] 纯文本查看 复制代码 public class Test{
public static void main(String args[]){
int [] numbers={10,20,30,40,50};
for (int x:numbers){
if(x==30){
continue;}
System.out.print(x);
System.out.print(",");
}
}
}//注意,在for循环语句中,记得把continue的判断放在执行语句的最前面. 运行结果为10,20,40,50. continue语句中的30被跳过了. 下面有几个课外例子 输出数字,逢三进一, [Java] 纯文本查看 复制代码 public class Test{
public static void main(String[]args){
for (int i=1;
i<=3;
i++){
//for (初始化;布尔表达式;更新){执行语句}
for(int n=1;
n<=3;
n++){
System.out.println("i="+i+",n="+n);
}
}
}
}
讲解: 第一个for 定义一个i 并且判断他是否小于3,第二个for定义一个n 并且判断他是否小于3.如果成立
实例: for 嵌套2打印一张99乘法口诀表.并且要求九个一行. [Java] 纯文本查看 复制代码 public class Test{[/align] public static void main(String[] args){
for (int i=1; i<=9; i++)
{
for(int k=1; k<=i; k++)
{
System.out.print(i+"*"+k+"="+i*k+" ");
}
System.out.println();
}
}
}
思路: 双层循环,第一层用于乘,第二层用于计数,当跳出第一层循环之后,执行第二层的循环内容. 实例猴子吃桃 小猴子第一天吃了一半的桃子,然后又吃了一个,
第二天吃了一半然后又吃了一个,到第十天发现只剩下了一个.问开始的时候有多少个桃子
[Java] 纯文本查看 复制代码 public class Test{
public static void main(String[]args){
int k=1;
for (int i=1; i<=9; i++){
k++;
k*=2;
}
System.out.println(k);
}
}
实例:卡拉兹猜想对任何一个正整数 n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把 (3n+1) 砍掉一半。这样一直反复砍下去,最后一定在某一步得到 n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证 (3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展…… 我们今天的题目不是证明卡拉兹猜想,而是对给定的任一不超过 1000 的正整数 n,简单地数一下,需要多少步(砍几下)才能得到 n=1? (正确的思路应该用for 语句写循环,并且比较简洁,待改进) [Java] 纯文本查看 复制代码 import java.util.Scanner;[/align][i]public class Test{[/i]
[i] public static void main(String[]args){[/i]
[i] Scanner sc=new Scanner(System.in);[/i]
[i] System.out.println("请出入一个小于1000的正整数");[/i]
[i] int num = sc.nextInt();[/i]
[i] System.out.println("你输入的数字是"+num);[/i]
[i] {[/i]
[i] int cal=0;[/i]
[i] while (num!=1){[/i]
[i] cal++;[/i]
[i] switch(num%2){[/i]
[i] case (0):[/i]
[i] num=num/2;[/i]
[i] break;[/i]
[i] case(1):[/i]
[i] num=3*num;[/i]
[i] num++;[/i]
[i] break;[/i]
[i] }[/i]
[i] }[/i]
[i] System.out.print("你砍了"+cal+"刀");[/i]
[i] {[/i]
[i] }[/i]
[i] }}}
加强题 分析以下需求,并用代码实现: (1)按照从大到小的顺序输出四位数中的 个位+百位=十位+千位(3553,2332,1166,8228,3773)的数字及其总个数 (2)每行输出5个满足条件的数字, 数字之间用空格分隔 (3)如:9999 9988 9977 9966 9955 [Java] 纯文本查看 复制代码
public class Test03{
public static void main (String[]args){
int gw=0;
int sw=0;
int bw=0;
int qw=0;
int cnt=0;
for (qw=9;qw>=0;qw--){
for(bw=9;bw>=0;bw--){
for(sw=9;sw>=0;sw--){
for(gw=9;gw>=0;gw--){
if (gw+sw==qw+bw&qw!=0){
System.out.print(qw+""+bw+""+sw+""+gw+",");
cnt++;
if (cnt == 5) {
System.out.println();
cnt = 0;
}
}
}
}
}
}
}
}
|