java程序怎么写

java程序怎么写,第1张

3:

public class Test{

public static void main(String[] args)

{

A a=new A();

af();

B b=new B();

bf();

bg();

}

}

class A

{

public static void f(){

char cStart='A',cEnd='Z';

for(char c=cStart;c<=cEnd;c++){

Systemoutprint(" "+c);

}

Systemoutprintln();

}

}

class B extends A

{

public static void g(){

char cStart='α',cEnd='ω';

for(char c=cStart;c<=cEnd;c++){

Systemoutprint(" "+c);

}

Systemoutprintln();

}

}

///输出结果为

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω

////---------------------------------------------------------------------/////

4

class Num

{

public static void main(String[] args)

{

A a=new A();

int max=af(15,45);

Systemoutprintln("两个数的最大公约数为"+max);

B b=new B();

int min=bf(15,45);

Systemoutprintln("两个数的最小公倍数为"+min);

}

}

class A

{

public int f( int a, int b){

int m,n;

if(a<b){

m=a;

a=b;

b=m;

}

n=a%b;

while(n!=0){

a=b;

b=n;

n=a%b;

}

return b;

}

}

class B extends A

{

public int f(int a,int b){

int m=superf(a,b);

return ab/m;

}

}

///输出结果为

两个数的最大公约数为15

两个数的最小公倍数为4

1内部使用 C 的 longjmp 机制让出一个协程。 因此,如果一个 C 函数 foo 调用了一个 API 函数, 而这个 API 函数让出了(直接或间接调用了让出函数)。 由于 longjmp 会移除 C 栈的栈帧, Lua 就无法返回到 foo 里了。

2为了回避这类问题, 碰到 API 调用中调用让出时,除了那些抛出错误的 API 外,还提供了三个函数: lua_yieldk, lua_callk,和 lua_pcallk 。 它们在让出发生时,可以从传入的 延续函数 (名为 k 的参数)继续运行。

3我们需要预设一些术语来解释延续点。 对于从 Lua 中调用的 C 函数,我们称之为 原函数。 从这个原函数中调用的上面所述的三个 C API 函数我们称之为 被调函数。 被调函数可以使当前线程让出。 (让出发生在被调函数是 lua_yieldk, 或传入 lua_callk 或 lua_pcallk 的函数调用了让出时。)

4假设正在运行的线程在执行被调函数时让出。 当再次延续这条线程,它希望继续被调函数的运行。 然而,被调函数不可能返回到原函数中。 这是因为之前的让出 *** 作破坏了 C 栈的栈帧。 作为替代品,Lua 调用那个作为被调函数参数给出的 延续函数 。 正如其名,延续函数将延续原函数的任务。

5注意这里那个额外的显式的对延续函数的调用:Lua 仅在需要时,这可能是由错误导致的也可能是发生了让出而需要继续运行,才会调用延续函数。 如果没有发生过任何让出,调用的函数正常返回, 那么 lua_pcallk (以及 lua_callk)也会正常返回。 (当然,这个例子中你也可以不在之后调用延续函数, 而是在原函数的调用后直接写上需要做的工作。)

6Lua 会把延续函数看作原函数。 延续函数将接收到和原函数相同的 Lua 栈,其接收到的 lua 状态也和 被调函数若返回后应该有的状态一致。 (例如, lua_callk 调用之后, 栈中之前压入的函数和调用参数都被调用产生的返回值所替代。) 这时也有相同的上值。 等到它返回的时候,Lua 会将其看待成原函数的返回去 *** 作。

7我们需要预设一些术语来解释延续点。 对于从 Lua 中调用的 C 函数,我们称之为 原函数。 从这个原函数中调用的上面所述的三个 C API 函数我们称之为 被调函数。 被调函数可以使当前线程让出。 (让出发生在被调函数是 lua_yieldk, 或传入 lua_callk 或 lua_pcallk 的函数调用了让出时。)

8假设正在运行的线程在执行被调函数时让出。 当再次延续这条线程,它希望继续被调函数的运行。 然而,被调函数不可能返回到原函数中。 这是因为之前的让出 *** 作破坏了 C 栈的栈帧。 作为替代品,Lua 调用那个作为被调函数参数给出的 延续函数 。 正如其名,延续函数将延续原函数的任务。

希望能帮到你,谢谢!

import javautilRandom;

import javautilScanner;

public class T {

public static void main(String[] args) throws Exception {

Scanner in = new Scanner(Systemin);

int difficulty;//难度

int mode;//运算类型

int answer;//答案

int amount;//挑战题目数量

int score = 0;//得分

Systemoutprintln("请输入难度(1:一位数、2:两位数、3:三位数):");

difficulty = innextInt();

Systemoutprintln("请输入运算类型(1:加、2:减、3:乘、4:除):");

mode = innextInt();

Systemoutprintln("请输入想要挑战的题目数量:");

amount = innextInt();

Random random = new Random();

for (int i = 0; i < amount; i++) {

if (difficulty == 1) {

if (mode == 1) {

int x = randomnextInt(10);

int y = randomnextInt(10);

Systemoutprintln("第" + i + "题:");

Systemoutprint(x + " + " + y + " = ");

answer = innextInt();

if (answer == (x + y)) {

Systemoutprintln("答对了\n");

score++;

} else {

Systemoutprintln("答错了,答案是:" + (x + y) + "\n");

}

} else if (mode == 2) {

int x = randomnextInt(10);

int y = randomnextInt(10);

Systemoutprintln("第" + i + "题:");

Systemoutprint(x + " - " + y + " = ");

answer = innextInt();

if (answer == (x - y)) {

Systemoutprintln("答对了\n");

score++;

} else {

Systemoutprintln("答错了,答案是:" + (x - y) + "\n");

}

} else if (mode == 3) {//乘法

} else if (mode == 4) {//除法 考虑小数的问题

} else {

throw new Exception("运算类型输入值不合法");

}

} else if (difficulty == 2) {

if (mode == 1) {

int x = randomnextInt(100);

int y = randomnextInt(100);

Systemoutprintln("第" + i + "题:");

Systemoutprint(x + " + " + y + " = ");

answer = innextInt();

if (answer == (x + y)) {

Systemoutprintln("答对了\n");

score++;

} else {

Systemoutprintln("答错了,答案是:" + (x + y) + "\n");

}

} else if (mode == 2) {

} else if (mode == 3) {//乘法

} else if (mode == 4) {//除法 考虑小数的问题

} else {

throw new Exception("运算类型输入值不合法");

}

} else if (difficulty == 3) {

if (mode == 1) {

int x = randomnextInt(1000);

int y = randomnextInt(1000);

Systemoutprintln("第" + i + "题:");

Systemoutprint(x + " + " + y + " = ");

answer = innextInt();

if (answer == (x + y)) {

Systemoutprintln("答对了\n");

score++;

} else {

Systemoutprintln("答错了,答案是:" + (x + y) + "\n");

}

} else if (mode == 2) {

} else if (mode == 3) {//乘法

} else if (mode == 4) {//除法 考虑小数的问题

} else {

throw new Exception("运算类型输入值不合法");

}

} else {

throw new Exception("难度输入值不合法");

}

}

Systemoutprintln("挑战结束,您的分数为:" + score);

}

}

我就只举了加法的例子,其他运算的写法都是类似的,你照葫芦画瓢即可

运行结果:

以上就是关于java程序怎么写全部的内容,包括:java程序怎么写、用Java编写一个程序,要求如下:、用JAVA语言编写一个程序,要求如下:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9710893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存