java基本语法(流程控制语句)
/*
编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,
对它们进行排序(使用 if-else if-else),并且从小到大输出。
说明:如果if-else if-else条件的执行语句块{}只有一条语句的话,那么这一对{}可以省略
建议:不要省略{}
*/
import java.util.Scanner;
class TestApp{
public static void main(String[] args) {
//1.从键盘获取三个整数
Scanner s = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int num1 = s.nextInt();
System.out.println("请输入第二个整数:");
int num2 = s.nextInt();
System.out.println("请输入第三个整数:");
int num3 = s.nextInt();
//2.对num1,num2,num3从小到大排序
System.out.println("从小到大的排序为:");
if(num1 > num2){
if(num3 > num1)
System.out.println(num2 + "," + num1 + "," + num3);
//System.out.println("helloworld");
else if(num3 < num2)
System.out.println(num3 + "," + num2 + "," + num1);
else
System.out.println(num2 + "," + num3 + "," + num1);
}else{
if(num3 > num2)
System.out.println(num1 + "," + num2 + "," + num3);
else if(num3 < num1)
System.out.println(num3 + "," + num1 + "," + num2);
else
System.out.println(num1 + "," + num3 + "," + num2);
}
}
}
/*
输出所有的水仙花数,所谓水仙花数是指一个3
位数,其各个位上数字立方和等于其本身。
例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
*/
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);
}
}
}
}
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();
}
}
/*
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():
}
}
public static void main(String[] args){
//boolean flag = false;
long start = System.currentTimeMillis();//获取系统当前的毫秒数
l: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;
continue l;
}
}
//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():
}
/*
一个数如果恰好等于它的因子之和,这个数就称为"完数"。(因子:除去这个数本身正的约数)
例如6=1+2+3.编程 找出1000以内的所有完数
*/
class TestApp{
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;
}
}
}