JAVA基础day03

package day03;
/*
输出所有的水仙花数,所谓水仙花数是指一个3
位数,其各个位上数字立方和等于其本身。
例如: 153 = 111 + 333 + 555
*/
class ShuiXianHua{
public static void main(String[] args) {

	for(int i = 100;i < 1000;i++){//实现100-999的遍历  456 - 400 = 56 - 50
		int j1 = i / 100;//百位
		int j2 = (i - j1*100)/10;//十位
		int j3 = i % 10;//个位

		if(i == j1*j1*j1 + j2*j2*j2 + j3*j3*j3){
			System.out.println(i);
		}
	}
}

}

package day03;

public class TestArray {
public static void main(String[] args) {
int i1;
i1 = 12;
boolean b = true;
//1.如何定义一个数组
//1.1数组的声明
String[] names;
int scores[];
//1.2初始化
//第一种:静态初始化:初始化数组与给数组元素赋值同时进行。
names = new String[]{“周爽”,“郭强强”,“俞乾龙”};

	//第二种:动态初始化:初始化数组与给数组元素赋值分开进行。
	scores = new int[4];
	//2.如何调用相应的数组元素:通过数组元素的下角标的方式来调用。
	//下角标从0开始,到n -1 结束。其中n表示的数组的长度。
	scores[0] = 87;
	scores[1] = 89;
	scores[3] = 98;
	//3.数组的长度:通过数组的length属性。
	System.out.println(names.length);//3
	System.out.println(scores.length);//4
	//4.如何遍历数组元素

// System.out.println(names[0]);
// System.out.println(names[1]);
// System.out.println(names[2]);
for(int i = 0;i < names.length;i++){
System.out.println(names[i]);
}
}
}

package day03;
/*
break:使用在switch-case中或者循环中
如果使用在循环中,表示:结束"当前"循环

continue:使用在循环结构中
表示:结束"当次"循环

关于break和continue中标签的使用。(理解)
/
class TestBreakContinue{
public static void main(String[] args) {
/

for(int i = 1;i <= 10;i++){
if(i % 4 == 0){
//break;
continue;
}

		System.out.println(i);
	}
	*/
	label:for(int i = 1;i < 5;i++){
		for(int j = 1;j <= 10;j++){
			if(j % 4 == 0){
				//break;
				//continue;
				//break label;
				continue label;
			}
			System.out.print(j);
		}
		System.out.println();
	}

	System.out.println();
	for(int i = 1;i <= 10;i++){
		if(i % 4 == 0){
			break;
			//continue;
			//在break和continue语句之后不能添加其他语句,应为永远也不可能被执行!
			//System.out.println("林志玲晚上要约我");
		}

		System.out.println(i);
	}
}

}

package day03;
/*
①初始化条件
②循环条件
③迭代条件
④循环体

1.格式:

do{


}while(②);

2.do-while与while的区别:do-while循环至少会执行一次!
*/

class TestDoWhile{
public static void main(String[] args) {
int i = 1;
do{
if(i % 2 == 0){
System.out.println(i);
}
i++;
}while(i <= 100);

	//do-while与while的区别
	int j = 10;
	do{
		System.out.println(j);
		j++;
	}while(j < 10);


	while(j < 10){
		System.out.println(j);
		j++;
	}
}

}

package day03;
/*

问题一:
从键盘读入个数为10个的整数,并判断读入的正数和负数的个数。
问题二:
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

无限循环:
for(;😉{}
或者
while(true){
}
说明:一般情况下,在无限循环内部要有程序终止的语句,使用break实现。若没有,那就是死循环!

*/
import java.util.Scanner;
class TestExer{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int a = 0;//记录正数的个数
int b = 0;//记录负数的个数
//for(;😉{
while(true){
System.out.println(“请输入一个整数:”);
int num = s.nextInt();
if(num > 0)
a++;
else if(num < 0)
b++;
else
break;
}

	/*
	问题一:
	for(int i = 0;i < 10;i++){
		System.out.println("请输入第" + (i + 1) + "个整数");
		int num = s.nextInt();
		if(num > 0)
			a++;
		else if(num < 0)
			b++;
	}
	*/
	System.out.println("正数的个数为:" + a);
	System.out.println("负数的个数为:" + b);
}

}

package day03;
/*
for循环结构:
1.格式:
①初始化条件
②循环条件
③迭代条件
④循环体
for(①;②;③){
//④
}
2.执行过程:①-②-④-③-②-④-③-。。。-④-③-②
即直至循环条件不满足,退出当前的循环
*/
class TestFor{
public static void main(String[] args) {

	System.out.println("Hello World!" );
	System.out.println("Hello World!" );
	System.out.println("Hello World!" );
	System.out.println("Hello World!" );
	
	System.out.println();

	for(int i = 0;i < 4;i++){
		System.out.println("Hello World!" );
	}
	//System.out.println(i);
	int j = 1;
	for(System.out.print('a');j < 3;System.out.print('b'),j++){
		System.out.print('c');
	}
	//acbcb
	System.out.println();
	//题目:输出100以内的所有偶数及所有偶数的和(累加的思想)及偶数的个数
	int sum = 0;//用来记录所有偶数的和
	int count = 0;
	for(int i = 1;i <= 100;i++){//100以内的自然数的遍历
		if(i % 2 == 0){
			System.out.println(i);
			sum += i;
			count++;
		}
	}
	System.out.println("总和为:" + sum);
	System.out.println("100以内偶数的个数为:" + count);
}

}

package day03;
/*
嵌套循环:循环中还可以声明循环。相当于内层循环的整体充当外层循环的循环体
for(;😉{
for(;😉{

}

}

或者
while(){
for(;😉{}
}
*/

class TestForFor{

public static void main(String[] args) {
	/*
	*****
	*****
	*****
	*****
	*/
	for(int j = 0;j < 4;j++){//外层循环控制行数
		for(int i = 0;i < 5;i++){//内层循环控制列数
			System.out.print("*");
		}
		System.out.println();
	}

	/*
	*
	**
	***
	****
	*/
	for(int j = 0;j < 4;j++){//外层循环控制行数
		for(int i = 0;i < j + 1;i++){//每行输出j + 1个
			System.out.print("*");
		}
		System.out.println();
	}
	/*
	*****
	****
	***
	**
	*
	*/
	for(int i = 0; i < 5;i++){
		for(int j = 0;j < 5-i;j++){//for(int j = i;j < 5;j++)
			System.out.print("*");
		}
		System.out.println();
	}

	/*
	*
	**
	***
	****
	*****
	****
	***
	**
	*
	*/
	for(int j = 0;j < 4;j++){//外层循环控制行数
		for(int i = 0;i < j + 1;i++){//每行输出j + 1个
			System.out.print("*");
		}
		System.out.println();
	}
	for(int i = 0; i < 5;i++){
		for(int j = 0;j < 5-i;j++){//for(int j = i;j < 5;j++)
			System.out.print("*");
		}
		System.out.println();
	}

/*
打印如下图形
----*
—* *
–* * *
-* * * *


i k- j* k = 4 - i j = i + 1
0 4 1
1 3 2
2 2 3
3 1 4
4 0 5
-* * * *
–* * *
—* *
----*
i k- j* k = i + 1 j = 4 - i
0 1 4
1 2 3
2 3 2
3 4 1
/
//上半部分:
for(int i = 0;i < 5;i++){
for(int k = 0;k < 4 - i;k++){
System.out.print(" “);
}
for(int j = 0;j < i + 1;j++){
System.out.print(”
“);
}
System.out.println();
}
//下半部分
for(int i = 0;i < 4;i++){
for(int k = 0;k < i + 1;k++){
System.out.print(” “);
}
for(int j = 0;j < 4 - i;j++){
System.out.print(”* ");
}
System.out.println();
}
}
}

package day03;
/*
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4

9 * 1 = 9 … 9 * 9 = 81
*/

class TestJiuJiu{
public static void main(String[] args){
for(int i = 1;i <= 9;i++){//一共有9行
for(int j = 1;j <= i;j++){//每行有i个等式
System.out.print(i + "" + j + “=” + ij + “\t”);
}
System.out.println();
}
}
}

package day03;
/*

100以内的所有质数

*/
class TestPrimeNumber{
public static void main(String[] args){
boolean flag = false;
long start = System.currentTimeMillis();//获取系统当前的毫秒数
for(int i = 2;i <= 100000;i++){//实现100以内的自然数的遍历
//如何判断i是否为一个质数
for(int j = 2;j <= Math.sqrt(i);j++){
if(i % j == 0){
flag = true;
break;
}
}
if(!flag){//if(flag == false){
//System.out.println(i);
}
flag = false;
}
long end = System.currentTimeMillis();
System.out.println(“所花费的时间为:” + (end - start));
//35535–加上break:10059–使用Math.sqrt():
}
}

package day03;
/*
编写程序:从键盘上读入一个学生成绩,存放在变量score中,根据score的值输出其对应的成绩等级:

score>=90 等级:A
70<=score<90 等级: B
60=<score<70 等级: C
score<60 等级:D

/
import java.util.Scanner;
class TestScore{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println(“请输入学生的成绩:”);
int score = s.nextInt();
char level;
/

if(score >= 90){
level = ‘A’;
}else if(score >= 70){
level = ‘B’;
}else if(score >= 60){
level = ‘C’;
}else{
level = ‘D’;
}
*/
switch(score / 10){
case 10:
case 9:
level = ‘A’;
break;
case 8:
case 7:
level = ‘B’;
break;
case 6:
level = ‘C’;
break;
default:
level = ‘D’;
break;
}

	System.out.println("score:" + score + ",level:" + level);
}

}

package day03;
/*
一个数如果恰好等于它的因子之和,这个数就称为"完数"。(因子:除去这个数本身正的约数)
例如6=1+2+3.编程 找出1000以内的所有完数
*/
class TestWanShu{
public static void main(String[] args){
int factor = 0;
for(int i = 1;i <= 1000;i++){
//每执行完一次如下的循环,就会将i的所有的因子累加到factor中
for(int j = 1;j < i;j++){
if(i % j == 0){
factor += j;
}
}
if(i == factor){
System.out.println(i);
}
factor = 0;
}
}
}

package day03;
/*
①初始化条件
②循环条件
③迭代条件
④循环体
1.格式:

while(②){


}
2.for循环与while可以相互转换。
*/
class TestWhile{
public static void main(String[] args) {
//100以内的偶数的输出,及其和
int i = 1;
int sum = 0;
while(i <= 100){
if(i % 2 == 0){
System.out.println(i);
sum += i;
}
i++;

	}
	System.out.println(sum);
	//System.out.println(i);
}

}

package day03;
//从键盘分别输入年、月、日,判断这一天是当年的第几天
import java.util.Scanner;
class TestYearMonthDay{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println(“请输入年份:”);
int year = s.nextInt();
System.out.println(“请输入月份:”);
int month = s.nextInt();
System.out.println(“请输入日期:”);
int day = s.nextInt();

	int sum = 0;//用来记录year年month月day日是year年第几天
	//使用switch-case
	switch(month){
	
	case 12:
		sum += 30;//30:十一月份的总天数
	case 11:
		sum += 31;
	case 10:
		sum += 30;
	case 9:
		sum += 31;
	case 8:
		sum += 31;
	case 7:
		sum += 30;
	case 6:
		sum += 31;
	case 5:
		sum += 30;
	case 4:
		sum += 31;
	case 3:
		if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
			sum += 29;
		}else{
			sum += 28;
		}
	case 2:
		sum += 31;//31:是一月份的天数
	case 1:
		sum += day;

	}
	System.out.println(sum);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值