一、Scanner用法
-
首先需要先import这个类
-
在Scanner中new一个新的对象
-
调用这个方法
import java.util.Scanner; public class Fish { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("qingshuru"); int num = sc.nextInt(); System.out.println("mun" + num); } }
通过键盘可以输入对应的内容
二、JAVA实现99乘法表
主要要思考每行是怎么输出的
比如说第二行,他的展示为:2*1=2 2*=4
我们可以看出,第一位的因数是不会变的,为行数
第二位的话,则是递增的关系,递增至行数值
我们可以使用嵌套for循环进行
外面一个for循环,循环他的行数
里面嵌套的for循环,循环至每行数
public class Jiujiu {
public static void main(String[] args) {
//循环输出对应的九九乘法表
//用i表示行数,j表示列
for (int i=1;i<10;i++){
for(int j=1;j<=i;j++) {
System.out.print(i+"*"+j+"="+i*j);
System.out.print(" ");
}
System.out.println();
}
}
}
三、水仙花数
定义:一个三位数,个位的立方+十位的立方+百位的立方=这个数,这种数就被叫做是水仙花束
public class ShuiXianHua {
public static void main(String[] args) {
//求出100--999中的水仙花
//个位的3立方加上十位的立方加上百位的立方等于这个数
int count = 0;
for(int i = 100;i<=999;i++) {
int bai = i /10/10;
int shi = i/10%10;
int ge = i%10;
if(bai*bai*bai+shi*shi*shi+ge*ge*ge == i) {
System.out.println(i);
count = count +1;
}
}
System.out.println("在这个100-999中一共有"+count + "个水仙花数");
}
}
四、JAVA实现金字塔展示
通过for循环,进行是实现
实现的思路:
-
每一行展示的个数为1、3、5....所以实现的话是每行个数=(第几行*2-1)进行实现
-
每行的前面以空格进行隔开,个数=(想要实现的行数-第几行)为每行输出空格的个数
-
输出空格后,后面直接跟上每行输出*号的个数
public class Jinzita {
public static void main(String[] args) {
/* for (int i = 1; i <=5; i++) {
for (int j = 1; j <=i; j++) {
System.out.print("*");
}
System.out.println(" ");
}
*/
//定义行数数值
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想输出多少行金字塔");
int hang = sc.nextInt();
int geshu = hang*2-1;
for(int i =1;i<=hang;i++) {
for (int j = 1; j<=hang-i; j++) {
System.out.print(" ");
}
for (int j = 0;j<i*2-1;j++){
System.out.print("*");
}
System.out.println();
}
}
}
五、冒泡数组的输出
为了实现for循环遍历,初始条件为i=0,因为索引总是从0开始,继续循环的条件为i<ns.length,ns是对应数组名
因为当i=ns.length时,i已经超出了索引范围(索引范围是0 ~ ns.length-1),每次循环后,i++。当i等于他的长度时,会出现索引的超出,是java中最容易出现问题的地方
因为数组的位置是从0开始,而长度的话,就是正常的长度
package ccc;
import java.util.Arrays;
public class maopao {
public static void main(String[] args) {
// TODO Auto-generated method stub
// n个数字来排队
// 两两相比小靠前
// 外层循环 n-1
// 内层循环 n-1-i
int[] a = {1, 2, 55, 99, 44, 22, 3, 8};
int shu;
for (int j = 0; j < a.length - 1; j++) {
for (int i = 0; i < a.length - j - 1; i++) {
if (a[i] > a[i + 1]) {
shu = a[i];
a[i] = a[i + 1];
a[i + 1] = shu;
}
}
}
System.out.println(Arrays.toString(a));
}
}
结果:
[1, 2, 3, 8, 22, 44, 55, 99]
public class For {
public static void main(String[] args) {
/*for(int i = 1; i<=5 ;i++) {
System.out.println("hello");
}*/
/*int count = 0;
//找出0-100以内的偶数
for(int i=1;i<=100;i++) {
if(i%2 == 0) {
System.out.println(i);
count = count+1;
}
}
System.out.println("一共有"+ count + "个偶数");*/
//for each
int[] shuzu = {1,2,3,5,7,8,9 };
for(int n : shuzu) {
System.out.println(n);
}
System.out.println("--------------------");
for(int i = 0; i<shuzu.length;i++) {
//for(int i = 0; i<=shuzu.length;i++) 如果这边变为<=,就会出现报错
System.out.println(shuzu[i]);
}
}
}