循环结构
/*
For结构的使用:
1.循环结构的四个要素:
初始化条件
循环条件(布尔类型)
循环体
迭代条件
2.for循环的结构
for(初始化条件;循环条件;迭代条件){
循环体
}
*/
//练习一:
class ForTest{
public static void main(String[] args){
//输入1000个“hello world”
for(int i=1;i<=1000;i++){
System.out.println("hello world!");
}
//i在for循环里有效,出了for循环失效
//练习二:
int num=1;
for(System.out.println('a');num<=3;System.out.println('c'),num++){
System.out.println('b');
}
//输出结果:abcbcbc
//练习三:
//遍历100以内的偶数:
for(int n=1;n<=100;n++){
if(n%2==0){
System.out.println(n);
}
//练习四:
//遍历100以内的偶数,输出所有偶数的和
int sum=0;
for(int i=1;i<=100;i++){
if(i%2==0){
System.out.println(i);
}
sum+=i;
}
}
System.out.println("总和为:"+sum);
}//蚌埠住了,家人们,为什么会提示sum没有找到符号啊
}
//练习五:
/*编写程序从1循环到150,并在每行打印一个值,另外在每个3的倍数行
上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印
输出“baz”。
*/
class ForTest1{
public static void main(String[] args){
for(int i=1;i<=150;i++){
System.out.print(i+"");
if(i%3==0){
System.out.print("foo");
}
if(i%5==0){
System.out.print("biz");
}
if(i%7==0){
System.out.print("baz");
}
System.out.println();//换行
}
}
}
//练习六:
/*输入两个正整数m和n,求其最大公约数和最小公倍数。
比如:12和20的最大公约数是4,最小公倍数是60。
说明:break关键字的使用
*/
import java.util.Scanner;
class ForTest{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.println("请输入第一个正整数");
int m=scan.nextInt();
System.out.println("请输入第二个正整数");
int n=scan.nextInt();
//获取最大公约数
//获取两个数的较小值(因为最大公约数一定不大于两个数的较小值)
int min=(m<=n)?m:n;//使用三元运算符获取最小值
for(int i=min;i>=1;i--){//最大公约数的值一定在[1,min]之间,从min开始到1,依次判断是否符合条件
if(m%i==0 && n%i==0){
System.out.println("最大公约数为:"+i);//if语句是循环体
break; //一旦遇到符合条件的就跳出循环
}
}
//获取最小公倍数
//获取两个数的最大值
int max=(m>n)?m:n;//三元运算符获取最大值
for(int i=max;i<=m*n;i++){ //最小公倍数一定在[max,m*n]范围内
if(i%m==0 && i%n==0){
System.out.println("最小公倍数为:"+i);
break;
}
}
}
}
//练习七:
//打印1~100之间所有奇数的和
class ForTest{
public static void main(String[] args){
int sum=0;
for(int i=1;i<=100;i++){
if(i%2!=0){
}//why?!加大括号输出结果为5050;不加大括号结果为2500
sum+=i;
}
System.out.println(sum);
}
}
//练习八:
输出所有的水仙花数,所谓水仙花数是指一个3位数,其各个位上数 字立方和等于其本身。 例如: 153 = 1*1*1 +
3*3*3 + 5*5*5
class ForTest{
public static void main(String[] args){
for(int i=100;i<1000;i++){
if(((i/100)^3+(i%100/10)^3+(i%10)^3)==i){
System.out.println(i);
}
}
}
}//为什么编译成功,输出来却啥也没有啊