您的位置 首页 java

Java基础之for和while的区别,关于这些,你们知道吗?

for和while

 for和while都可以互相代替

 固定的循环次数、数据规律变化,用for

猜数字

已经产生了一个[1, 1001)范围的随机整数

请猜这个数是几

285

猜:1

猜:999

猜:2

猜:285

项目:day0405_猜数字

类:day0405.Test1

package day0405;

import java.util.Random;

import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {

//产生随机整数

// 1+ [0, 1000) –> [1, 1001)

// 1+ {0,1,2,3,4,5…999}

int r = 1+ new Random().nextInt(1000);

System. out .println(r);

System. out .println(

“已经产生了一个[1, 1001)范围的随机整数”);

System. out .println(“请猜这个数是几”);

while ( true ) {

System. out .print(“猜:”);

int c = new Scanner(System. in ).nextInt();

if (c > r) {

System. out .println(“大”);

} else if (c < r) {

System. out .println(“小”);

} else {

System. out .println(“对”);

break ;

}

}

}

}

方法的返回值

 一个方法,可以有计算结果

 在调用位置,可以获得方法的计算结果返回值

 void

 空,没有返回值

 有返回值,需要定义返回值的数据类型

int f() {

}

String f() {

}

 如果定义了返回类型,必须返回值

int f() {

int x = 1;

if(x == 1) {

return 6;

}

return -1;

}

方法返回值

项目:day0406_方法返回值

类:day0406.Test1

package day0406;

public class Test1 {

public static void main(String[] args) {

System. out .println(“nn– 1”);

int r = f (2);

System. out .println(r);

System. out .println(“nn– 3”);

System. out .println( f (4));

System. out .println(“nn– 5”);

System. out .println(4 + f (6));

}

private static int f( int i) {

return i*i;

}

}

定义一个方法,从email地址中,提取名字部分

sdfsdf@sdsdf.com

Test2

package day0406;

import java.util.Scanner;

public class Test2 {

public static void main(String[] args) {

System. out .println(“输入email:”);

String e = new Scanner(System. in ).nextLine();

//email地址e,传递到该方法,

//并得到方法返回的名字,保存到变量n

String n = getName (e);

System. out .println(n);

}

static String getName(String email) {

/*

* “sdfwerw@rewerwe.com”

* |

* index

*

* 1. 定位 “@” 的下标位置 index

* 2. 截取 [0, index),直接返回

*

* email.indexOf(“@”)

* 查找指定子串的位置

* 找不到,得到特殊值 -1

* email.substring(0, index)

* 截取 [0, index)

*/

//找@的位置

int index = email.indexOf(“@”);

if (index == -1) {//找不到

return “格式错误”;

}

//截取,直接返回截取的结果

return email.substring(0, index);

}

}

数组

 用来存放一组数据的数据结构

 数组创建(3种语法)

 int[] a = new int[5];

 新建5个长度的 int[] 数组

 5个位置,存默认值 0

 把数组的地址,存到变量a

 int[] a = {5,2,6,7,1,2,3};

 为存在的数组变量,重新赋一个新的数组,并且,直接初始化数组数据

a = new int[]{4,6,1};

 数组的长度属性

 a.length

 数组一旦创建,长度不可变

 数组长度,可以是0

 最大下标是 a.length – 1

 数组的遍历

 从头到尾,依次访问每一个位置

for(int i=0; i<a.length; i++) {

a[i]

}

数组

项目:day0407_数组

类:day0407.Test1

package day0407;

import java.util.Arrays;

public class Test1 {

public static void main(String[] args) {

System. out .println(“nn————–“);

f1 ();

System. out .println(“nn————–“);

f2 ();

System. out .println(“nn————–“);

f3 ();

}

private static void f1() {

//新建 int[],长度5

//再把它的内存地址,存到变量a

int [] a = new int [5];

System. out .println(a[2]);

a[2] = 6;

//打印数组的全部数据

//Arrays. toString (a)

//把数组所有数据,连接成字符串

// “[0, 0, 6, 0, 0]”

System. out .println(Arrays. toString (a));

}

private static void f2() {

char [] a = {‘a’, ‘b’, ‘c’};

System. out .println(Arrays. toString (a));

a = new char []{‘h’,’e’,’l’,’l’,’o’};

System. out .println(Arrays. toString (a));

}

private static void f3() {

int [] a = {6, 7, 8, 9, 10};

// 交换 1 和 3 位置的值

int t = a[1];

a[1] = a[3];

a[3] = t;

System. out .println(Arrays. toString (a));

}

}

Test2

package day0407;

import java.util.Arrays;

import java.util.Random;

public class Test2 {

public static void main(String[] args) {

//调用f()方法,从方法获取一个int[]数组

int [] a = f ();

//遍历打印数组数据

for ( int i=0; i<a.length; i++) {

System. out .println(a[i]);

}

System. out .println(“nn—————-“);

//把a数组,传递到 shuffle() 方法打乱顺序

shuffle (a);

System. out .println(Arrays. toString (a));

}

private static void shuffle( int [] a) {

/*

* j

* [4, 2, 3, 1, 5]

* i

*

* *) i循环遍历数组

* *) 随机定位下标j与i交换

*/

for ( int i = 0; i < a.length; i++) {

//随机下标j,范围:[0, a.length)

int j = new Random().nextInt(a.length);

int t = a[i];

a[i] = a[j];

a[j] = t;

}

}

private static int [] f() {

//新建int[]数组,长度5

//再把它的内存地址存到变量 a

int [] a = new int [5];

//遍历访问5个位置,填入1,2,3,4,5

for ( int i=0; i<a.length; i++) {

a[i] = i+1;

}

//返回数组,把数组返回到调用位置

//本质是把数组地址返回去

return a;

}

}

文章来源:智云一二三科技

文章标题:Java基础之for和while的区别,关于这些,你们知道吗?

文章地址:https://www.zhihuclub.com/173060.shtml

关于作者: 智云科技

热门文章

网站地图