[DAY 4]制御文:条件文と繰り返し文


コントロールゲート

console.log('A');
console.log('B');
console.log('C1');	// 경우에 따라 C1, C2를 실행시키도록 하려면?
console.log('D');
上記のプログラムを実行すると仮定します.場合によっては、C 1またはC 2を印刷する場合は、どうすればいいですか?
console.log('A');
console.log('B');
console.log('C2');
console.log('D');
新しいプログラムを作成して、状況に合ったプログラムを実行させるだけでいいです.しかし,数が1億件を超えると,プログラムのコード行が1億行を超えると,同様の方法で問題を解決できるだろうか.
コードを修正する場合,1億個を超える異なるプログラムを修正することはかなり困難である.1つのプログラムは1億行を超えるコードを見るのも難しいかもしれません.これらの問題を解決するツールは、文を制御することです.
制御文は、プログラムフローを制御するのに役立つ実行文です.
制御文の種類は,条件文,繰返し文,選択文に分けられる.

条件文


条件文は、条件に基づいて特定の実行文を実行できます.
基本的なif..elseの形態は以下の通りである.
if (조건) {
  만약 조건(condition)이 참일 경우 실행할 코드
} else {
  대신 실행할 다른 코드
}
では、条件文を前に出会った問題に代入して運用しましょう.
console.log('A');
console.log('B');
if(true){
  console.log('C1');
} else{
  console.log('C2')'
}
console.log('D');
条件文ifが状況に合致する条件を提示すれば、私たちは前に出会った問題をより効果的に解決することができる.

else if


前に発生した問題には2つの選択肢があり、結果があります.では、もし私たちが2つ以上の状況がほしいなら、どのように利用すればいいのでしょうか.関連する問題があるかもしれません.
この場合、if..elseの間でelse ifを使用することができる.
if (조건) {
  만약 조건(condition)이 참일 경우 실행할 코드
} else if (조건2) {
  만약 조건2가 참일 경우 실행할 코드
} else if (조건3) {
  만약 조건3가 참일 경우 실행할 코드
} else {
  조건1,2,3 이외에 대신 실행할 코드
}
さらに、if..elseをオーバーラップとして利用して、より多くの選択肢を示すこともできます.

複文


ループ文は、特定の実行文を繰り返し実行できます.
前述のコードを利用して、C 1、C 2を2回繰り返したい場合は、どうすればいいのでしょうか.
これらの問題を解決できるツールは繰り返しです.
基本的なwhileゲートの形式は以下の通りです.
while (조건) {
  // 반복해서 실행시킬 코드
}
このような基本的な形式で、私たちは問題を解決することができます.
すべて
console.log('A');
console.log('B');
var i = 0;
while (i < 2) {
  console.log('C1');
  console.log('C2');
  i = i + 1;
}
console.log('D');
whileゲートのほか、forゲートのような重複文もありますが、配列の概念を理解した後、もっと詳しく理解します.

白駿が問題を解く


ステップ解答ではif文とwhile文の部分の問題について議論した.

「タイムアウト」1110回のプラス記号サイクル



私が書いたコード
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin');

let num = input;
let sum;
let i = 0;

while(true){
     i+=1;
     sum = (num%10) + Math.floor(num/10);
     num = (num%10)*10 + (sum%10);
     if(input === sum){
         break;
     }
}
console.log(i);
タイムアウトになったので、他の方法を考えなければなりません.頭が痛い

まとめと感じ


普段はpythonをたくさん使ってjavascriptを使って標準問題を解決し、SyntaxErrorによく遭遇します.使用コードを混同しないように注意してください.また、白駿ではfs모듈を用いて問題を解き、readlineモジュールの利用で正しく答えなければならない問題もある.ノードを確認します.js解アルゴリズムでは時間がかかりpythonよりも難しい.でも明日も頑張ります!