私の質問のより良い例を提供するために作ったプログラムを簡単に見ていきましょう。ループ内のn番目の項はどのようにして見つけられますか? java
ループコード
ます。public void scheme1(int型D){
// first modification
if (mark<=20){
System.out.print("\nBecause mark under 20 mark stays as its original value. mark="+mark);
return;
}
int total = mark;
int finalMark=20;
System.out.print("Scheme 1"+"\n");
// Loop
for(int loopParameter = START_CONDITION;
loopParameter <= d;loopParameter++){
System.out.print("(" + loopParameter + ") " + total + " ");
total = total + constantDiffSch1;
// second modification
if (total < 40){
System.out.print("\nThis work can be up to " + loopParameter);
return;
}
// third modification
if (total<=20){
System.out.print("\nBecause mark drops below 20, mark stays as 20. final mark="+ finalMark);
return;
}
} // End
System.out.print("\n\n");
}
はこれが何であるかを私のプログラムの出力
を入力してくださいマーク: 64
ディスプレイ日のください入力番号:10
スキーム1
(0)64(1)、59(2)54(3)、49(4)44
この作業をすることができ失敗するまでに4日遅れることがあります。
これは、出力が
を入力してくださいマークすることになっているものです:ディスプレイ日の64
を入力してください数:10
スキーム1
(0)64(1)59(2)54(3)49(4)44(5)39(6)34(7)29(8)24
この作業は、失敗するまでに最長で4日ほどかかる可能性があります。
遅れてペナルティーを計算する(マーク-5)私はまた、不合格に失敗するのに必要な日数を表示する必要があります(失敗するまでの日数ユーザが入力した日数(d)よりも長い)。表示日の64
を入力してください番号:2
スキーム1
失敗マークを入力してくださいマーク40未満
2例(出力)であります
(0)64(1)59(2)54
Th仕事は失敗するまでに4日遅れる可能性があります。
私のコードはほぼ完成していますが、この問題は私を遅くしています。
P.S.私はここのjava
で新しいです私の完全なプログラムです
LatePenaltiesは、私はときfalingマーク示さなければならない
import java.util.Scanner;
public class LatePenaltiesUser {
public static void main(String [] args) {
// local variables
Scanner input = new Scanner(System.in);
LatePenalties latePen;
int mark;
int days;
// input
do{
System.out.print("Please input mark (between 0 and 100) --> ");
mark = input.nextInt();
if ((mark < 0) | (mark > 100)){System.out.print("\n" + "Input value outside the range!!!" + "\n");}
}while((mark < 0) | (mark > 100));
do{
System.out.print("Please input number of days to display (between 0 and 20) --> ");
days = input.nextInt();
System.out.print("\n");
if ((days < 0) | (days > 20)){System.out.print("Input value outside the range!!!"+ "\n");}
}while((days < 0) | (days > 20));
// computation
latePen = new LatePenalties(mark);
latePen.scheme1(days);
latePen.scheme2(days);
}
}
メインクラス
public class LatePenalties {
// attributes
private int mark;
private static final int constantDiffSch1 = -5;
private static final double constantDiffSch2 = 0.9;
private static final int START_CONDITION = 0;
// constructors
public LatePenalties(int m) {
mark = m;
}
// methods
public void scheme1(int d) {
// first modification
if (mark<=20){
System.out.print("\nBecause mark under 20 mark stays as its original value. mark="+mark);
return;
}
int total = mark;
int finalMark=20;
System.out.print("Scheme 1"+"\n");
// Loop
for(int loopParameter = START_CONDITION;
loopParameter <= d;loopParameter++){
System.out.print("(" + loopParameter + ") " + total + " ");
total = total + constantDiffSch1;
// second modification
if (total < 40){
System.out.print("\nThis work can be up to " + loopParameter);
return;
}
// third modification
if (total<=20){
System.out.print("\nBecause mark drops below 20, mark stays as 20. final mark="+ finalMark);
return;
}
} // End
System.out.print("\n\n");
}
public void scheme2(int d) {
double total = mark;
System.out.print("\n\nScheme 2"+"\n");
// Loop
for(int loopParameter = START_CONDITION;
loopParameter <= d;loopParameter++){
System.out.print("(" + loopParameter + ") ");
System.out.printf("%.02f",total);
System.out.print(" ");
total = total * constantDiffSch2;
} // End
System.out.print("\n");
}
}
をcalss (40未満で)発生するが、私は私はそれが期待されるものの例に示しているように、20日にループを止めるか、または日数に達したときに終わります。
基本的には、各ループ反復でグレードの値を減らしたいと思っていますが、グレードが40を下回ってループを停止するのは正しいですか? – molig
私はfaling markが(40未満で)出現するときに表示する必要がありますが、20で停止するか、または日数を完了する必要があります。 –